1、简单控制器(Simple Controller)
是最简单的一个控制器,提供一个块的结构和控制,并不具有任何的逻辑控制或运行时的功能
2、循环控制器(Loop Controller)
指定其子节点运行的次数,可以使用具体的数值,也可以使用变量;如果设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的子节点运行次数为两个数值相乘的结果。
3、仅一次控制器(Once Only Controller)
在测试计划执行期间,该控制器下的子节点对每个线程只执行一次,登录场景经常会使用到这个控制器;将仅一次控制器作为循环控制器的子节点,仅一次控制器在每次循环的第一次迭代时均会被执行
4、For Each控制器
这个控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值。
如上图,输入前缀是financial_type, 左下角勾选“Add _ before number”,与输入前缀拼接后为“financial_type_”。start index for loop为0,end index for loop为6,是“左开右闭”,即(0,6]。ForEach控制器会依次取financial_type_1、financial_type_2、financial_type_3、financial_type_4、financial_type_5、financial_type_6 的值,并赋值给 financial_type
用户自定义变量:name=上面"输入变量前缀"定义的name+_(上图中我们勾选了下划线)+数字编号
执行结果:每次执行时会把获取到的变量值赋值给输出变量(For Each控制器中输入的“输出变量名称”,例如:Outname),其他地方可以通过${Outname}进行调用。
5、事务控制器
事务控制器会产生一个额外的采样器,用来同级该控制器子节点的所有时间。Generate parent sample:生成母样本
Include duration of timer and pre-post processors in generated sample:选中这一项会统计定时器(timer)的时间,否则只统计采样器(sample)的时间
6、if控制器
根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript语法进行判断
Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)
a、使用变量方式进行判断:
b、选中Interrupt Condition as Variable Expression?
7、switch控制器
switch控制器通过给该控制器中的value赋值,来指定运行那个采样器,两种赋值方式:
a、数值,从0开始计数,通过制定子节点所在的数值来确定执行那个元素
b、第二种是指定子元素的名称
当value的值为空时,默认执行第一个子节点元素
8、Throughput Controller吞吐量控制器)
控制其下的子节点的执行次数与负载比例分配,也有两种方式:
Total Executions:设置运行次数
Percent Executions:设置运行比例