Jmeter 元件及其执行顺序和作用域
Jmeter 元件
0.Test Plan (测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本性能测试的所有内容是于基于一个计划的。
1.线程组 :场景的起始点,设置多少用户并发,什么时候开始跑,跑多久。
2.控制器 :包括循环控制器和Logical Controllers。
3.配置元件:对samplers进行配置,避免重复内容。
4.定时器 :请求之间的暂停。
5.前置处理器 :运行在Sampler之前,多用于设置sampler,和更新从上一个响应获得的变量值。
6. sampler:是指真正的请求,jmeter脚本中必须要包括sampler
7. 后置处理器:运行在Sampler之后,多用于对响应数据的处理。
8. 断言:验证服务器返回的信息是否正确。
9. 监听器: 收集测试用例运行信息,例如响应时间,请求和响应的详细信息。
Jmeter 元件执行顺序
执行顺序:
1.配置元件
2.前置处理器
3.定时器
4.取样器(Sampler)
5.后置处理器
6.断言
7.监听器
备注:只有有sampler 的时候,定时器,断言,前置/后置处理器才会被运行, 逻辑控制器和 Samplers 按它们在树里的排列顺序执行,其他测试元件的执行是根据它们的范围和元素类型(同种类型,按树上的顺序执行)。
举例:假如测试计划如下结构:
- Controller
Post-Processor 1
Sampler 1
Sampler 2
Timer 1
Assertion 1
Pre-Processor 1
Timer 2
Post-Processor 2
以上的执行顺序为:
Pre-Processor 1
Timer 1
Timer 2
Sampler 1
Post-Processor 1
Post-Processor 2
Assertion 1
Pre-Processor 1
Timer 1
Timer 2
Sampler 2
Post-Processor 1
Post-Processor 2
Assertion 1
Jmeter 元件的作用域
元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是:
- 采样器:元件不和其它元件相互作用,因此不存在作用域的问题。
- 逻辑控制器:元件只对其子节点中的取样器 和 逻辑控制器作用。
- 除采样器 和 逻辑控制器 元件外,其他6类元件,如果是某个sampler的子节点,则该元件只对其父子节点起作用。
- 除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。
备注:
1.用户定义的变量该元件定义的变量是全局变量,不论放哪里都是作用所有域。
2.配置元件Header Manager、Cookie Manager和Authorization Manager的处理方式与配置默认元素不同。来自配置默认元素的设置被合并到采样器可以访问的一组值中。但是,不会合并以上Manager中的设置。如果一个采样器的作用域中有多个管理器,则只使用一个管理器,但目前无法指定使用哪个管理器。
举例1:假如有以下测试计划
断言#1仅应用于请求1,而断言#2应用于请求2和3。
举例2:假如有以下测试计划
在本例中,将命名请求以反映它们将执行的顺序。Timer#1将应用于请求2、3和4(注意顺序与层次元素无关)。断言#1将仅应用于请求三。Timer#2将影响所有请求。