逻辑控制器能够控制采样器的执行顺序,因此控制器须要和采样器一块儿使用post
Jmeter中的逻辑控制器分为两类测试
一、控制测试计划执行过程当中节点的逻辑顺序,如循环控制器、If控制器lua
二、对测试计划中的脚本进行分组,方便Jmeter统计执行结果以及进行脚本的运行时控制,如事务控制器、吞吐量控制器线程
逻辑控制器类型blog
1、简单控制器索引
做用:这是Jmeter最简单的控制器,它能够组织咱们的采样器和和其余逻辑控制器,至关于分组,提供一个块的结果和控制,并不具备任何的逻辑控制或运行时的功能事务
2、循环控制器字符串
做用:指定其子节点运行的次数,可使用具体的数字,也可使用变量it
若是同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的子节点运行次数为线程组循环次数*循环控制器循环次数io
3、仅一次控制器
做用:在测试计划执行期间,该控制器下的子节点对每一个线程组只执行一次
若是将仅一次控制器做为循环控制器的子节点,那么仅一次控制器在每次循环的第一次迭代时均会被执行
4、ForEach控制器
做用:ForEach控制器通常和用户自定义变量一块儿使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或屡次,每次读取不一样的变量值
参数:
输入变量前缀,即用户定义变量的前缀
循环开始的索引(不包含),若是不填写,默认从1开始,若是没有从1开始的变量,执行时会报错
循环结束的索引(包含)
输出变量名称,其余地方能够经过${变量名称}进行调用
输入变量名称中是否使用“_”分隔
好比用户定义的变量以下:
5、事务控制器
做用:事务控制器会产生一个额外的采样器,用来统计该控制器下全部子节点的时间
Generate parent sample:生成父取样器,不勾选时,事务控制器添加在其采样器后面;勾选时,事务控制器是做为其下采样器的父采样器,效果见以下图
Include duration of timer and pre-post processors in generated sample:勾选后会统计定时器的时间和先后生成采样器的时间,不然只统计采样器的时间
6、若是(If)控制器
参数:
Interpret Condition as Variable Expression:判断变量值是否等于字符串true,不区分大小写
Evaluate for all children:勾选后,在每一个子节点执行前都会计算表达式
7、Switch控制器
做用:Switch控制器经过给该控制器中的value赋值,来指定运行哪一个采样器,有两种赋值方式
第一种经过数字赋值,Switch控制器下的子节点从0开始计数,经过指定子节点所在的数值来肯定执行哪一个元素
第二种是直接指定子元素的名称,好比采样器的名称来进行匹配,当指定名称不存在时,不执行任何元素
当value为空时,默认执行第一个子节点元素
8、吞吐量控制器
做用:控制其下的子节点的执行次数与负载比例分配,有两种方式
Total Executions:设置运行次数
Percent Executions:设置运行比例(1~100之间)
9、随机控制器
做用:随机执行其下某个子节点
10、随机顺序控制器
做用:按随机顺序,执行其下的全部子节点
11、Runtime控制器
做用:用于控制该控制器下的取样器或控制器的运行时间,单位秒