文章目录
jmeter逻辑控制器详解
逻辑控制器(17个)
控制器组合在一起能够完成各种奇葩需求。
访问路径:【测试计划】–>【线程组】–>【逻辑控制器】
(1)ForEach控制器
循环控制器,用于定义一个循环规则。
参数说明:
名称:控制器名称,随意设置;
注释:随意设置;
输入变量前缀:可以在“用户自定义的变量”中定义一组变量,循环控制器可以从中获取到变量对应的值,然后座位循环控制器的循环条件,还可以输出变量作为取样器的参数。
start index for loop:循环变量下标起点;
end index for loop:循环变量下标终点;
输出变量名称:循环控制器生成变量名称;
add “_” before number?:变量前缀是否加 _作为分隔符。
应用实例: https://blog.csdn.net/qq_35417815/article/details/80910384
(2)Simple Controller 简单控制器
用来指定一个执行单元,不改变元件执行顺序,可嵌套其他控制器
名称和注释可随意设置,可为空。
(3)Include Controller
参数:
名称和注释:随意设置,可为空
文件名:必填,为空会报错
用来导入外埠的测试片段(非完整的测试计划),在执行时会执行导入的测试计划(特殊要求:不能有线程组,只能包含简单控制器及控制器下的元件)。
简单说就是相当于加了一个执行单元,一个封装了的业务操作单元,类似Java中的方法封装。
(4)Runtime Controller
用来控制其子元件执行时长,时长的单位是秒。
![这里写图片描述](https://img-blog.csdn.net/20180716210745440?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1NDE3ODE1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
参数:
名称和注释:随意设置,可为空
Runtime(seconds):默认为1,去掉1默认为0,此时不执行其节点下的元件。
(5)Switch Controller
switch条件控制器,类似于switch逻辑控制语句。
参数说明:
名称和注释:随意设置,可为空
switch value:匹配值,可以为数字,也可以为字符。为字符时匹配取样器名称,如果匹配不上默认并找取样器名称为default的取样器,如果没有则不运行。
应用场景:如图jmeter会给节点下的取样器顺序编号,第一个HTTP请求编号为0,第二个编号为1,所以指定0就会运行第一个HTTP请求。
如果指定的编号超出了下面的节点数或者不指定,默认运行第0个取样器。
也可指定取样器名称,名称匹配时大小写及空格都敏感,匹配不上则不运行取样器。
(6)While Controller
while条件控制器,其节点下的元件将一直运行直到While条件为false。
参数说明:
名称和注释:随意设置,可为空
Condition:接受变量表达式和变量。
(还说提供三个常量,不知道在哪儿怎么用【扶额笑哭】
Blank:当循环中有取样器失败后停止
LAST:当循环前有取样器失败则不进入循环
Otherwise:当判断条件为false时停止循环
)
(7)Interleave Controller 交替控制器
其节点下的取样器会交替执行
参数说明:
名称和注释:随意设置,可为空
忽略子控制器:子控制器失效,由交替控制器接管。
几个比较好玩的场景,判断一下请求执行顺序:https://blog.csdn.net/qq_35417815/article/details/81072723
(8)Once Only Controller 仅一次控制器
此控制器下的子元件只运行一次,即使吧仅一次控制器放在循环控制器下,也只运行一次。
参数说明:
名称和注释:随意设置,可为空。
注:仅一次控制器放在线程组下面,也只运行一次,模拟请求时有时只需要登录一次,就可以把登录部分放在仅一次控制器下。
(9)throughput controller
吞吐量控制器,但用来控制其下元件的执行次数,并无控制吞吐量的功能,(想要控制吞吐量可以使用Constant Throughput Timer);
吞吐控制器有两种模式:Total Executions 与 Percent Executions
参数说明:
名称与注释:随意,可为空;
Percent Executions:按执行次数的百分比来计算执行次数,此时吞吐量的取值为0-100。Per User是否勾选对Percent Executions模式无影响。
Total Executions:按吞吐量的值来指定执行次数,可以任意数,小于等于0则不执行。
Per User:如果选中则按虚拟用户数来计算执行次数,如果没选中则是按所有虚拟用户来计算执行次数。
未完待续…