在线程组中为多个用户设置计数器的控制器 - Jmeter

时间:2018-02-14 18:38:21

标签: jmeter

我正在尝试添加一个While Controller来检查 GET 调用中的值是否返回'COMPLETED'。我还想添加计数器以防止它进入无限循环。我添加了一个带有以下javascript代码的while控制器:

$ {__ javaScript(“$ {STATUS}”!=“已完成”||“$ {COUNTERA}”< 5,)}

我正在使用JSON提取器从之前的GET调用中检索STATUS参数。 COUNTERA设置为以0开始,并且递增1.上面的代码不起作用,虽然STATUS已完成,但控制器不会停止执行事件。

任何帮助都会得到帮助!

2 个答案:

答案 0 :(得分:1)

当条件变为“假”时,您需要使用While Controller停止

  

While Controller运行其子项,直到条件为“false”。

首选__jexl3,__ groovy函数优于__javaScript

  

根据需要使用__jexl3,__ groovy函数,属性或变量。

只需删除不需要的逗号和括号:

 ${__jexl3("${STATUS}" !="COMPLETED" && ${COUNTERA} < 5)}

答案 1 :(得分:1)

  1. 将您的While Controller条件修改为

    ${__javaScript("${STATUS}" !="COMPLETED" && ${COUNTERA} < 5,)}
    

    您需要删除${COUNTERA}周围的引号,因为JavaScript会将其视为String,因此您的比较失败。

  2. 您可能还想在User Defined Variables中声明值0的COUNTERA变量,以避免在初始化变量时第一次迭代时出现JavaScript错误

    JMeter User Defined Variables