逻辑控制器下一共16个控制器:
一、foreach controller循环控制器
定义变量数组,按数组遍历循环
二、simple controller 简单控制器
不改变元件的执行顺序,指定了一个执行单元;
三、include controller
导入外部的测试片断,不能有线程组,只能包含简单控制器及控制器下的元件;
四、runtime controller
控制其子元件的执行时长;
runtime默认为1,去掉1则默认为0,此时不执行其节点下的元件;
五、switch controller
switch条件控制器,指定运行的取样器编号,该节点下的元取样器从0排序,编号是多少,则执行该取样器;
若是指定的编号超出了节点数或者不指定,则运行第0个取样器。
也可指定取样器名称,此时大小写、空格都敏感;
若是匹配不上,则不运行取样器;
六、while controller
其节点下的元件将一直运行直到while条件为false;
另外提供如下三个常量:
Blank:当循环中有取样器失败后中止;
LAST:当循环中有取样器失败则不进入循环;
Otherwise:当判断条件为false时中止循环;
七、interleave controller交替控制器
其节点下的取样器会交替执行;即控制器下有三个取样器,则第一次循环只执行第一个取样器;循环第二次时执行第二个取样器;
八、once only controller仅一次控制器
此控制器的子元件只运行一次,即便把仅一次控制器放在循环控制器下面,也只是运行一次;
九、throughput controller
用来控制其下元件的执行次数,并没有控制吞吐量的功能;
详情见P93;
十、if controller条件控制器
经过某个条件来控制此节点下的元件是否运行。
可直接取值true\false的变量,也可经过语句取得的值;
十一、module controller模块控制器
在当前测试计划中引入新的测试片断;
十二、random controller随机控制器
节点下的元件随机运行,与交替控制器不同的是节点下的元件运行顺序不定;
1三、random order controller
其节点下的元件随机执行,不过每一个元件只执行一次,顺序是随机的;
1四、loop controller
控制在其节点下的元件的执行次数;
若是在线程组中也设置了执行次数,则循环控制器下元件的执行次数是:线程组执行次数*循环控制器执行次数;
1五、recording controller录制控制器
录制的时候用到的。当咱们用JMeter代理进行录制时,录制的脚本默认放在此控制器的节点下面;
1六、transaction controller事务控制器
可把其节点下的取样器执行消耗时间累加在一块儿;同时咱们把每个取样器的执行时间进行统计;
若是事务控制器下的取样器有多个,那么只有每个取样器都运行成功了,整个事务控制器定义的事务才算成功,这是充分必要条件。
参考文献:
《全栈性能测试修炼宝典 JMeter实战》