简介
Jmeter逻辑控制器可以对元件的逻辑进行控制,除仅一次逻辑控制器以外,其他控制器下都可以嵌套别的种类的逻辑控制器。
逻辑控制器的作用域只对其子节点的取样器有效,作用是控制取样器的执行顺序。
1.ForEach Controller
循环控制器,用来定义一个循环规则。
参数说明:
名称:控制器名称,可以为空
注释:可以为空
输入变量前缀:可以在“用户自定义的变量”中定义一组变量,循环控制器可以从中获取到变量的值,
然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数。
Start index for loop:循环变量起始下标
End index for loop:循环变量终止下标
输出变量名称:循环控制器生成的变量名称
2.Simple Controller
简单控制器,用来指定一个执行单元,它不改变元件的执行顺序,它下面可以嵌套其他的控制器
可编辑的属性只有名称和注释
3.Include Controller
包含控制器,用来导入外部的测试片段(非完整的测试计划),在执行时会执行导入的测试 计划。
注意:被导入的测试计划不能有线程组,只能包含简单逻辑控制器及控制器下的元件。
简单的说相当于加了一个执行单元,一个封装的业务操作单元,类似于函数。
来个栗子
比如一个查询订单的业务操作我们用取样器来模拟,然后放到简单控制器中作为一个执行单元,
别的地方需要用到这个功能时,我们可以直接引用。
参数
名称和注释就不作说明了
文件名:必输字段
4.Runtime Controller
运行周期控制器,用来控制其子元件的执行时间
参数
Runtime(seconds):默认为1,去掉1则默认为0,此时不执行其节点下的元件
5.Switch Contoller
Switch条件控制器,类似于编程中的switch语句
来个栗子
(待补)
参数
Switch Value:匹配值,可以为数字或字符,为字符时匹配取样器名称,如果匹配不上,
就会默认并找取样器名称为default的取样器,如果没有则不运行。
6.While Contoller
While条件控制器,其节点下的元件将一直运行到While条件为false。
参数
Condition:接收变量表达式与变量
Blank:当循环中有取样器失败后停止
LAST:当循环中有取样器失败则不进入循环
Otherwise:当条件判断为false时停止循环
7.Interleave Controller
交替控制器,其节点下的取样器会交替执行
栗子(待补充)
参数说明:
Ignore sub-controller blocks:忽略子控制器,即子控制器失效时由交替控制器接管
8.Once Only Conotroller
仅一次控制器,此控制器下的子元件只运行一次,即使把子控制器放在循环控制器下面,也只是执行一次
栗子(待补充)
9.Throughput Controller
用来控制其元件下的执行次数,并无控制吞吐量的功能,想要控制吞吐量可以使用Constant Throughput Timer,
吞吐量控制的两种模式:Total Executions和Percent Executions
参数
名称:控制器名称,可以为空
Percent Executions: 按执行次数的百分比来计算执行次数,此时Throughput取值为0~100.Per User是否勾选对Percent Executions没有影响
Per User:如果选择Per User则按虚拟用户数来计算执行次数,若没给勾选则按所有虚拟用户来计算。
Total Executions:按Throughput的值来指定执行次数,可以为任意整数,若小于等于0则不执行。此时Per User 和Total Executions一起来影响执行次数。
10.If Controller
条件控制器,通过某个条件来控制此节点下的元件是否运行。Condition可以使用javascript于变量表达式
参数
Condition:判断条件,勾选Interpret Condition as Variable Expression?时Condition使用变量表达式来设置条件
栗子(待补充)
Evaluate for all children:判断条件是否针对所有的节点,默认不勾选,只在If Condition的入口判断一次。