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