Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控制器种类,我们分别对其进行介绍
Simple ControllerSimple Controller用来指定一个执行单元,他不改变元件的执行顺序,主要作用是用来组织采样器和其他的逻辑控制器
简单控制器只有名称和注释.
比如说我们可以用它组织模块,在各个模块里在进行请求的发送,这样看起来各模块比较独立,好维护一些。
Include ControllerInclude Controller用来导入外部的测试片段,这个片段并不是完整的测试计划,导入的这个测试计划是不能有线程组的,只能包含简单的控制器以及控制器下的元件。相当于执行了封装了业务操作到的单元,相当于将一些通用的功能逻辑封装,在这里进行调用。
Runtime Controller用来控制器子元件的执行时长,单位是秒
Switch ControllerSwitch Controller条件控制器,类似于编程语言里的switch语句
比如由上图的配置,Switch Controller下面有两个java request,jmeter会给下面的java请求进行编号,第一个为0,第二个为1以此类推
如果上面switch Value设置0,那么第一个java request就会执行。如果指定的编号超出了控制器下面的节点数,或者没有指定,则会默认运行第一个节点。
Switch Controller也可以指定取样器的名称,名称匹配时大小写以及空格都铭感,如果匹配不上则不运行取样器。
While ControllerWhile条件控制器,其节点下的元件将一直运行知道while条件为false
Condition:接受表达式与变量,还可以输入常量,也就是jmeter内置的默认值
LAST:当循环前有取样器失败则不进入循环
BLANK:当循环中有取样器失败后停止
Otherwise:当判断条件为false停止循环
Interleave ControllerInterleave Controller交替控制器,其节点下的取样器会交替执行,
假设我们有如上的线程组和交替控制器的配置,线程组下面有一个请求3,交替控制器下面有请求1和请求2,线程组配置一个线程循环且循环三次,执行以下我们来看看请求的执行顺序。
循环三次,总共有六个请求发出,也就是说每一次循环会执行线程组下面的请求和交替控制器里的一个请求。
下篇文章我们将介绍剩余的逻辑控制器