JMeter的组件主要包含:逻辑控制器,配置元件,定时器,前置处理器,Sampler,后置处理器,断言,监听器。刚开始学习,只能对他们有个大概的了解,以后慢慢使用了就会更熟悉些。
1、逻辑控制器(Logic Controller)
逻辑控制器主要用来控制JMeter发送请求(也就是采样器)的处理顺序,例如,它可以使从属于它一组请求它与Sampler结合使用可以模拟复杂的请求序列。
逻辑控制器 |
简单控制器 |
组合采样器和其他的逻辑控制器 |
循环控制器 |
循环执行子测试元N次(次数可以设定) |
|
仅一次控制器 |
执行它的子测试原件仅一次(如果它的父控制器是循环控制器,则在第一次时执行)例如登录请求 |
|
交替控制器 |
交替执行它的子测试元件 |
|
随机控制器 |
每次循环随机选择一个执行 |
|
随机循环控制器 |
它的子测试元件至多执行一次,执行顺序是随机的 |
|
Throughout Controller |
控制它的子测试元件的执行次数。它有两个参数:PercentExecution(设定一个百分比相对于它的父元件的执行测试) 和TotalExecution(总的执行那个次数) |
|
运行时长控制器 |
控制它的子测试元件的运行时间 |
|
If Controller |
通过一个条件来决定它的子测试元件是否执行 |
|
While Controller |
循环执行它的子测试元件,一直到条件为假停止执行 |
|
Switch Controller |
根据Switch Value来选择要执行的子测试元件。Value可以是数字(子测试元件从0开始编号),选择对应的测试元件执行, 如果超过了取值范围或者是为空,则执行o号测试元件。value也可以是字符串,也就是根据子测试元件的名字进行选择, 如果没有匹配的测试元件,就执行名字为default的测试元件,如果default的测试元件也不存在就都不执行。 |
|
ForEach Controller |
|
|
模块控制器 |
|
|
Include Controller |
加载一个外部的JMX文件 |
|
事务控制器 |
|
|
录制控制器 |
只是一个存放位置,在使用HTTP代理服务器的时候,所有录制的采样都被保存在录制控制器下 |
2、采样器(Sampler)
采样器也就是发送一个具体的请求到指定服务器,等待服务器的请求。一般,采样器会按照其在测试树中的顺序去执行,但是也会根据逻辑控制器来改变运行的次数和顺序。JMeter 采样器包含:
3、配置元件(Config Element)
配置元件和它的名字一样,只是配置一些默认的属性和信息,它不向服务器发送任何的请求。配置元件仅对其所在的测试树分支有效。例如,HTTP请求默认值设置了服务器的名称,那么它所在的测试分支内的HTTP请求的服务器名称都是这个服务器,HTTP请求仅设置路径就可以访问网页了。配置元件主要有:
但是有个例外,配置元件"用户定义的参数"无论它处于测试树的哪个位置,总是在测试的初始阶段执行。所以最好把它放在线程组的开始部分。
4、监听器(Listener)
监听器是把测试结果用数据进行处理并展示出来。 查看结果树,用表格查看结果,图形结果、、聚合报告,都是我们经常用到的元件。
5、断言(Assertions)
用于检查测试中得到的数据和我们预期的结果是否相同。
6、前置处理器(Per Processors)
在发出请求之前对请求进行特殊的处理。例如,HTTP URL重写修复符则可以实现URL重写,当RUL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。
7、后置处理器(Post Processors)
对采样器 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据。例如,XPath Extractor 可以提取响应数据中通过给定XPath 值获得的数据。
元件的执行顺序
在同一作用域名范围内,测试计划中的元件按照如下顺序执行。
(1)配置元件(config elements )
(2)前置处理程序(Per-processors)
(3)定时器(timers )
(4)取样器(Sampler)
(5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。
(6)断言(Assertions)(除非Sampler 得到的返回结果为空)。
(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)。