Jmeter之逻辑控制器介绍

jmeter中逻辑控制器(Logic Controllers)的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。

jmeter提供了17种逻辑控制器,它们各个功能都不尽相同,大概可以分为2种使用类型:

①.控制测试计划执行过程中节点的逻辑执行顺序,如:Loop Controller(循环控制器)、If Controller(如果if控制器)等;

②.对测试计划中的脚本进行分组,方便JMeter统计执行结果以及进行脚本的运行时控制等,如:Throughput Controller(吞吐量控制器)、Transaction Controller(事务控制器)等

 

jmeter提供如下17种逻辑控制器(本次对前面5种进行介绍):

Jmeter之逻辑控制器介绍_jmeter

 

一、临界区控制器(critical section Controller)

作用:临界区控制器确保其子节点下的取样器或控制器将被执行(只有一个线程作为一个锁)

Jmeter之逻辑控制器介绍_jmeter_02

名称和注释很简单,就是给控制器添加一个备注,使人明白这个控制器的解释含义的意思

Lock name锁名称,这里可以填入其子节点下执行的线程的名称,这个线程作为一个全局锁存在

 

2、遍历循环控制器(ForEach Controller)

作用:用来遍历当前元素的所有可执行场景;在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值;

Jmeter之逻辑控制器介绍_jmeter_03

输入变量前缀:在其中输入需要遍历的用户参数(User Parameter)

Start index for loop(exclusive):循环指数开始(唯一)→ 遍历查询的变量范围,开始的值(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)

End index for loop(inclusive):循环指数结束(包含)→ 遍历查询的变量范围,结束的值

输出变量名称:将遍历查询到的符合条件的用户参数赋值给输入变量(Vname),然后就可以在控制器下的取样器使用,格式为${输出变量名}

Add”_”before number输入变量名称中是否使用“_”进行间隔

PS这个控制器一般配合配置元件→ 正则表达式提取器来一起使用,可对页面上的某些元素进行重复处理。

 

3、包含控制器(Include Controller)

作用:用于引用外部的Jmx文件;从而控制多个测试计划组合

Jmeter之逻辑控制器介绍_jmeter_04

include Test Plan包含测试计划的文件名,可以点击浏览,从文件夹保存的JMX文件夹目录下选择对应的JMX文件

使用方法:创建一个测试计划,下面可添加取样器/控制器等,然后保存测试计划,为了方便起见, 线程组也可以添加外部JMX文件中用于调试;

如果测试使用Cookie或用户定义的变量,这些应放置在顶层(包括文件),否则无法正常工作;此元素不支持变量/函数在文件名字段中;但是,如果属于包含控制器定义的内容,则使用前缀路径名。

当使用包含控制器中包含相同的JMX文件,则要确保文件名不同,以避免无法读取;如果文件不能被发现,那么控制器会尝试打开文件名相对于JMX启动目录。

 

4、生命周期/运行周期控制器(Runtime Controller)

作用:用于控制该控制器下的取样器/控制器的运行时间

Jmeter之逻辑控制器介绍_jmeter_05

Runtimeseconds):运行时间,单位为:秒

 

5、转换控制器(Switch Controller)

作用:通过给该控制器中的value赋值,来指定运行哪个取样器(也可以理解为开关控制器)

Jmeter之逻辑控制器介绍_逻辑控制器_06

Switch value控制器具体赋值的value值字段

有两种赋值方式:

①.第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。

②.第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。

当Value为空时,默认执行第1个子节点元素。