JMeter工具和其他性能工具在原理上完全一致,工具包含四个部分:
1)负载发生器(发送请求):用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
2)用户运行器(请求规则):通常是一个脚本运行引擎 ,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
3)资源生成器(资源数据):用于生成测试过程中服务器、负载机的资源数据。
4)报表生成器(数据报表):根据测试中获得的数据生成报表,提供可视化的数据显示方式。
线程组Threads
三个不同的线程组,只是执行顺序的设置不同,其他功能是一样的。
1)setup thread group:预测试(初始化)操作,在另外两个线程组执行之前执行的线程组
2)teardown thread group:在另外两个线程组执行之后执行的线程组
3)thread group:虚拟用户组。线程组中的每个线程模拟成每个虚拟用户。
测试片段元素Test Fragment
是控制器上一种特殊的线程组。与thread group不同,只有当它是一个模块控制器或者是被控制器所引用时才会被执行。
两种控制器
1)取样器Sampler(发送请求):性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元。
2)逻辑控制器Logic controller:有两类
(1)用于控制Sampler节点发送请求的逻辑顺序,常用:如果(If)控制器、switch Controller、Runtime Controller、循环控制器等
(2)用来组织可控制Sampler节点的,如事务控制器Transaction Controller、吞吐量控制器
配置元件Config Element
用于提供对静态数据配置的支持。
1)CSV Data Set Config:将本地数据文件形成Data Pool,拆分后存储到变量中,适合处理多变量的场景
2)HTTP信息头管理器:可添加或者重载HTTP请求头。
3)HTTP Cookie管理器:两个功能
(1)像web浏览器一样存储和发送Cookie。需先定义属性CookieManager.save.cookie=true
(2)手动为Cookie管理器添加一个cookie
定时器Timer
用于操作之间设置等待时间(类似LoadRunner的思考时间)。
前置处理器Pre Processors
用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符 ,可以实现URL重写,当URL中含有sessionID一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID。
后置处理器Post Processors
用于对Sampler发出请求后得到的服务器响应进行处理。
断言Assertions
断言用于检查测试中得到的响应数据等是否符合预期,断言一般用来设置检查点。
监听器Listener
用来对测试结果数据进行处理和可视化展示的一系列元件。
参考:http://www.spasvo.com/ceshi/open/kyxncsgj/Jmeter/20131210105807_4.html