Jmeter逻辑控制器之while Controller

while Controller的添加方式:

Jmeter逻辑控制器之while Controller

Condition(function or variable)的输入框中写进入循环控制器的条件,可以是Jmeter函数,或者是变量

Jmeter逻辑控制器之while Controller

condition中输入的可能的条件值:

  • 不填-循环中的最后一个sample失败时退出循环
  • LAST-当循环中的最后一个sample失败时退出循环。如果循环之前的最后一个sample失败,不进入循环。
  • 否则当条件等于字符串“ false ” 时退出(或不进入)循环

条件可以是最终计算为字符串“ false ”的任何变量或函数。这允许根据需要使用__jexl3__groovy函数,属性或变量。

一下为官方文档给出的示例(附图为截图):

  1. ${VAR} - 被设置成false的VAR或者其他元素
  2. ${__jexl3(${C}==10)}
  3. ${__jexl3("${VAR2}"=="abcd")}
  4. ${P(property)} -被设置成"false"的属性或配置

 Jmeter逻辑控制器之while Controller

实战示例:

第一步,创建要给beanshell sampler 声明两个变量a,b 初始值设为1

Jmeter逻辑控制器之while Controller

第二步,添加whileController,并设置循环条件,例如${__javaScript(${a}+${b}!=10)}

Jmeter逻辑控制器之while Controller

在whileController中添加beanshell sampler ,每次循环a+1

Jmeter逻辑控制器之while Controller

在结果树中可以看到最后一次的跳出循环之前的beanshell执行结果:

Jmeter逻辑控制器之while Controller

a=8,a++后a=9,b=1,不满足循环条件后跳出循环