Jmeter之逻辑控制器介绍
jmeter中逻辑控制器(Logic Controllers)的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。
jmeter提供了17种逻辑控制器,它们各个功能都不尽相同,大概可以分为2种使用类型:
①.控制测试计划执行过程中节点的逻辑执行顺序,如:Loop Controller(循环控制器)、If Controller(如果if控制器)等;
②.对测试计划中的脚本进行分组,方便JMeter统计执行结果以及进行脚本的运行时控制等,如:Throughput Controller(吞吐量控制器)、Transaction Controller(事务控制器)等
jmeter提供如下17种逻辑控制器(本次对前面5种进行介绍):
一、临界区控制器(critical section Controller)
作用:临界区控制器确保其子节点下的取样器或控制器将被执行(只有一个线程作为一个锁)
名称和注释很简单,就是给控制器添加一个备注,使人明白这个控制器的解释含义的意思
Lock name:锁名称,这里可以填入其子节点下执行的线程的名称,这个线程作为一个全局锁存在
2、遍历循环控制器(ForEach Controller)
作用:用来遍历当前元素的所有可执行场景;在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值;
输入变量前缀:在其中输入需要遍历的用户参数(User Parameter)
Start index for loop(exclusive):循环指数开始(唯一)→ 遍历查询的变量范围,开始的值(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)
End index for loop(inclusive):循环指数结束(包含)→ 遍历查询的变量范围,结束的值
输出变量名称:将遍历查询到的符合条件的用户参数赋值给输入变量(Vname),然后就可以在控制器下的取样器使用,格式为${输出变量名}
Add”_”before number:输入变量名称中是否使用“_”进行间隔
PS:这个控制器一般配合配置元件→ 正则表达式提取器来一起使用,可对页面上的某些元素进行重复处理。
3、包含控制器(Include Controller)
作用:用于引用外部的Jmx文件;从而控制多个测试计划组合
include Test Plan:包含测试计划的文件名,可以点击浏览,从文件夹保存的JMX文件夹目录下选择对应的JMX文件
使用方法:创建一个测试计划,下面可添加取样器/控制器等,然后保存测试计划,为了方便起见, 线程组也可以添加外部JMX文件中用于调试;
如果测试使用Cookie或用户定义的变量,这些应放置在顶层(包括文件),否则无法正常工作;此元素不支持变量/函数在文件名字段中;但是,如果属于包含控制器定义的内容,则使用前缀路径名。
当使用包含控制器中包含相同的JMX文件,则要确保文件名不同,以避免无法读取;如果文件不能被发现,那么控制器会尝试打开文件名相对于JMX启动目录。
4、生命周期/运行周期控制器(Runtime Controller)
作用:用于控制该控制器下的取样器/控制器的运行时间
Runtime(seconds):运行时间,单位为:秒
5、转换控制器(Switch Controller)
作用:通过给该控制器中的value赋值,来指定运行哪个取样器(也可以理解为开关控制器)
Switch value:控制器具体赋值的value值字段
有两种赋值方式:
①.第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。
②.第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。
当Value为空时,默认执行第1个子节点元素。