逻辑控制器可以控制采样器的执行顺序,所以控制器需要和采样器一起使用

Jmeter中的逻辑控制器分为两类

1、控制测试计划执行过程中节点的逻辑顺序,如循环控制器、If控制器

2、对测试计划中的脚本进行分组,方便Jmeter统计执行结果以及进行脚本的运行时控制,如事务控制器、吞吐量控制器

逻辑控制器类型

一、简单控制器

Jmeter(10)逻辑控制器-LMLPHP

 作用:这是Jmeter最简单的控制器,它可以组织我们的采样器和和其他逻辑控制器,相当于分组,提供一个块的结果和控制,并不具有任何的逻辑控制或运行时的功能

二、循环控制器

Jmeter(10)逻辑控制器-LMLPHP

 作用:指定其子节点运行的次数,可以使用具体的数字,也可以使用变量

如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的子节点运行次数为线程组循环次数*循环控制器循环次数

三、仅一次控制器

Jmeter(10)逻辑控制器-LMLPHP

 作用:在测试计划执行期间,该控制器下的子节点对每个线程组只执行一次

如果将仅一次控制器作为循环控制器的子节点,那么仅一次控制器在每次循环的第一次迭代时均会被执行

四、ForEach控制器

Jmeter(10)逻辑控制器-LMLPHP

 作用:ForEach控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值

参数:

输入变量前缀,即用户定义变量的前缀

循环开始的索引(不包含),如果不填写,默认从1开始,如果没有从1开始的变量,执行时会报错

循环结束的索引(包含)

输出变量名称,其他地方可以通过${变量名称}进行调用

输入变量名称中是否使用“_”分隔

比如用户定义的变量如下:

Jmeter(10)逻辑控制器-LMLPHP

 五、事务控制器

作用:事务控制器会产生一个额外的采样器,用来统计该控制器下所有子节点的时间

Jmeter(10)逻辑控制器-LMLPHP

Generate parent sample:生成父取样器,不勾选时,事务控制器添加在其采样器后面;勾选时,事务控制器是作为其下采样器的父采样器,效果见如下图

Include duration of timer and pre-post processors in generated sample:勾选后会统计定时器的时间和前后生成采样器的时间,否则只统计采样器的时间

Jmeter(10)逻辑控制器-LMLPHP Jmeter(10)逻辑控制器-LMLPHP

 六、如果(If)控制器

Jmeter(10)逻辑控制器-LMLPHP

 参数:

Interpret Condition as Variable Expression:判断变量值是否等于字符串true,不区分大小写
Evaluate for all children:勾选后,在每个子节点执行前都会计算表达式

七、Switch控制器

Jmeter(10)逻辑控制器-LMLPHP

作用:Switch控制器通过给该控制器中的value赋值,来指定运行哪个采样器,有两种赋值方式

第一种通过数字赋值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素

第二种是直接指定子元素的名称,比如采样器的名称来进行匹配,当指定名称不存在时,不执行任何元素

当value为空时,默认执行第一个子节点元素

Jmeter(10)逻辑控制器-LMLPHP

 八、吞吐量控制器

Jmeter(10)逻辑控制器-LMLPHP

作用:控制其下的子节点的执行次数与负载比例分配,有两种方式
Total Executions:设置运行次数

Percent Executions:设置运行比例(1~100之间)

九、随机控制器

作用:随机执行其下某个子节点

十、随机顺序控制器

作用:按随机顺序,执行其下的所有子节点

十一、Runtime控制器

Jmeter(10)逻辑控制器-LMLPHP

 作用:用于控制该控制器下的取样器或控制器的运行时间,单位秒

12-14 10:55