Jmeter-控制器执行“如果ctx.getPreviousResult()。getResponseCode()==“ 200” &&计数器<“ 5”不起作用

时间:2019-11-21 08:12:49

标签: while-loop jmeter

我想基于 responseCode 控制我的采样器,并且需要运行n个在计数器中定义的时间。
我使用了while控制器,并使用了如下所述的条件,但是它没有按预期工作。
我在控制器jmeter中的状态:

${((${ctx.getPreviousResult().getResponseCode()} == "200" && ${counter} < 5),)}

但是它没有按预期工作,您能不能请某人在这方面帮助我。

2 个答案:

答案 0 :(得分:0)

响应代码是int尝试使用的

($ {ctx.getPreviousResult()。getResponseCode()== 200} && $ {counter} <5)

没有双引号

答案 1 :(得分:0)

您的条件格式不正确,您需要使用__jexl3()__groovy()函数,其评估结果返回true。也可以是值true的{​​{3}},可以在其他位置将其设置为false。但是您的表达式将被“按原样”解释,并且不会被评估。

建议的修订:

${__groovy(!ctx.getPreviousResult().getResponseCode().equals('200') && (vars.get('counter') as int) < 5,)}

更多信息:JMeter Variable