Jmeter 逻辑控制器 之 While Controller

while controller用于控制采样器循环执行,直到条件为false时,退出循环

认识 While Controller

保留项目,认识while controller,我们就先创建一个while controller
如下图,创建一个While Controller (While 循环控制器)

性能测试|JMeter逻辑控制器(六)_跳出循环


设置界面如下:

性能测试|JMeter逻辑控制器(六)_逻辑控制_02

Condition (function or variable) :条件(函数或变量)。条件为 Flase 的时候,才会跳出 While 循环,否则一直执行 While 控制器下的样例。

3种条件:

  • 不填(空):当 While 控制器下最后一个样例执行失败后 跳出循环
  • LAST :当 While 控制器下最后一个样例执行失败后 跳出循环,如果 While 控制器 前一个样例执行失败,则不会进入While循环,也就是不会执行While控制器下的样例。
  • 自定义条件:值为True 或 False的函数/变量/属性 表达式

不填 (空)

首先,新增一个While 控制器,在其下面添加3个样例,如下:

性能测试|JMeter逻辑控制器(六)_自定义_03

然后 设置最后一个样例执行失败:(一定是最后一个样例哦)

性能测试|JMeter逻辑控制器(六)_逻辑控制_04

执行后,发现 循环只跑了一遍就退出了。

性能测试|JMeter逻辑控制器(六)_跳出循环_05

LAST

还是上面的设置不变,在While 控制器中的条件输入框中输入:LAST

性能测试|JMeter逻辑控制器(六)_逻辑控制_06

执行结果后,发现循环只跑一遍,与不填 的结果是一样的

但是输入LAST的时候,还会出现一个结果,那就是:如果While 控制器 的前一个样例执行失败,则不会进入While 控制器

如下:在While 控制器 前面 添加两个样例,使样例2 执行失败。

性能测试|JMeter逻辑控制器(六)_跳出循环_07

执行结果发现,样例1、样例2 执行了,但没有进入While 控制器:

性能测试|JMeter逻辑控制器(六)_自定义_08

自定义条件

自定义条件,类似前面分享的 if 控制器。比如:

性能测试|JMeter逻辑控制器(六)_跳出循环_09