JMeter逻辑控制器之While Controller


While Controller指直到条件为False时才停止运行其下元件运行。

JMeter可将循环用一个名为${__jm__<控制器名称>__idx}的变量用索引的方式显示出来。
例如,如果你的While控制器名为WC,那么你可以通过${__jm__WC__idx}访问循环索引。索引从0开始。

在这里插入图片描述

参数介绍

在这里插入图片描述

属性描述必填
Name控制器名称,可以根据实际情况进行设置
Comments注释,描述在业务中的作用
Condition(Function or variable)条件判断,可以为空,可以为函数或者变量

可能的条件值:

  1. 为空–当循环中的最后一个Sample失败时退出循环;
  2. LAST–当循环中的最后一个Sample失败时退出循环。如果进入循环之前的最后一个Sample失败,则不会进入循环;
  3. 其它–条件值等同于字符串"false"时退出(或不进入)循环;

Condition输入框可以输入最终计算结果等同于“false”的变量、函数,这允许根据需要使用__jexl3,__groovy函数,属性或变量。

Condition为空

当Condition为空时,直到循环中的最后一个Sample失败才会退出循环,如下面的例子,在While Controller下添加三个请求,如果只有请求2失败,那么此时会一直循环下去;如果请求3失败,那么此时会退出循环。
请求2失败,请求结果如下所示:
在这里插入图片描述
请求3失败,运行结果如下所示:
在这里插入图片描述

Condition为LAST

与上面不填一样,唯一的区别是,当进入循环之前最后一个请求失败了,那么不会进入循环。
在这里插入图片描述

执行结果如下所示:
在这里插入图片描述

表达式

判断条件可以用函数或者变量,当判断条件为False时跳出循环。
还是继续使用上面的实例,并且在While控制器下添加一个BeanShell Sampler,并写入如下函数:

print(${__jm__While Controller__idx});
if (${__jm__While Controller__idx}==2){    //判断循环次数为为3时退出循环
	int a=Integer.parseInt("1");
int b=Integer.parseInt("8");
a++;
print(a);
vars.put("a",(a).toString());
vars.put("b",(b).toString());
	};

在这里插入图片描述
而在While控制器条件下输入${__groovy(${a}+${b}!=10,)}; ,此时当循环到3此后,该条件为False,那么就会退出循环,运行结果如下所示:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值