Jmeter - 具有计数器配置元件的控制器

时间:2015-09-18 11:07:16

标签: performance testing while-loop jmeter counter

我有一个while控制器,在将用户注销之前等待某个正则表达式出现在响应中。但是,由于先前请求的超时,这偶尔会进入无限循环,从而使数据偏斜。我正在设置此请求,以便它在退出循环之前仅发送5次并将用户注销。

在搜索答案后,似乎$ {__ counter()}变量或Counter Config Element都是解决方案,但似乎都没有像我期望的那样工作。

这是我到目前为止所得到的:

While Controller (${__javaScript( "${DONE_A}" != "Thank you for your order" || ${counter} < 5;)}  
    Counter (set to 5, increment 1)  
    Constant Timer (2000 ms)  
    GET /checkout/confirmation  
    ^RegExp Extractor (DONE)

Logout

谢谢!

1 个答案:

答案 0 :(得分:1)

我可以看到您的脚本存在一些问题:

  1. 在第一次迭代期间,计数器值为NaN,您需要通过ie User Defined Variables声明它或者在条件中添加“Not a Number”检查
  2. 您不能在__JavaScript函数中将变量引用为${counter}。如果您需要解决它,您需要用引号括起变量(就像您对DONE_A变量所做的那样。如果您需要将变量视为数字变量 - 请使用ie parseInt()函数< / LI>

    鉴于第2点,我的期望是你的While控制器子句根本不起作用,这就是为什么你得到一个无限循环。

    这个应该适合你的场景:

    ${__javaScript(isNaN(parseInt("${counter}")) || parseInt("${counter}") < 5 && "${DONE_A}" != "Thank you for your order",)}