【问题标题】:While Controller with a Counter for multiple users in a Threadgroup - Jmeter而控制器与线程组中的多个用户的计数器 - Jmeter
【发布时间】:2018-02-14 18:38:21
【问题描述】:

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

${__javaScript("${STATUS}" !="COMPLETED" || "${COUNTERA}"

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

任何帮助将不胜感激!

【问题讨论】:

    标签: jmeter


    【解决方案1】:

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

    While 控制器运行其子代,直到条件为“假”为止。

    比起 __javaScript 更喜欢 __jexl3、__groovy 函数

    根据需要使用__jexl3、__groovy函数、属性或变量。

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

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

    【讨论】:

    • 非常感谢!我现在正在使用 jexl3 功能。
    【解决方案2】:
    1. 将您的 While Controller 条件修改为太喜欢

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

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

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

    【讨论】:

    • 非常感谢!添加用户定义的变量修复了编译错误。
    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多