为什么我的 while 循环在 Jmeter 中不起作用?

why my while loop doesn't work in Jmeter?

请点击link查看图片。

I have a Json Extractor, which saves the value returned in "status"

it's working:

and I also have a "Controller while" with this condition:

$ {__ javaScript ("${status}".indexOf ("string") != 500 ,)}

但是奇怪的事情发生了

2021-11-25 14:30:46,258 DEBUG o.a.j.c.WhileController: 条件字符串: '$ {__ javaScript ("ERROR" .indexOf("字符串") != 500 ,)}' 2021-11-25 14:30:46,258 DEBUG o.a.j.c.WhileController:条件值:'false' 2021-11-25 14:30:46,258 DEBUG o.a.j.t.p.AbstractProperty: 运行 版本,执行函数

不是应该给出“true”并结束循环吗?

你的条件不太正确,如果你想在你的 ${status} 变量变成 500 时结束循环,你应该使用类似的东西:

${__javaScript("${status}" != "500",)}

此外,从性能角度考虑,最好考虑使用 __jexl3() function,例如:

${__jexl3("${status}" != "500",)}

__groovy() function喜欢:

${__groovy(vars.get("status") != "500",)}

因为这是 __javaScript() function documentation 建议的