JMeter while循环(使用自己的索引停止循环)

时间:2018-10-02 09:47:50

标签: loops jmeter

我正在使用JMeter 5.0,并且试图遍历数据库结果集。

为简单起见,我们只使用“ 3”代替vars.getObject(“ resultSet”)。size()(这是我的结果集的大小)

我正在尝试使用WHILE组件自己的索引来使其停止

(请不要告诉我如何使用计数器组件,因为鉴于我发现的有关JMeter WHILE的所有帮助,我都可以使它自己工作,但是它对我来说是违反直觉的(无双关语) ,就像以其他任何语言递增“ i”一样:

` 
for(int i = 0;i < 10;)
    {
   // do stuff
    i++;
    }
`

我找到并尝试过的语法(当我的组件命名为LOOP时):

  1. ${__jm__LOOP__idx} < 3:不返回错误但不会停止

  2. ${__javaScript("${__jm__LOOP__idx}" < 3 )}:不返回错误,但也不会循环。

  3. ${__javaScript(${__jm__LOOP__idx} < 3)}: 工作并在3点后停止循环,但返回此错误:

    javax.script.ScriptException: <eval>:1:1 Expected ; but found { ${__jm__LOOP__idx} < 3 ^ in <eval> at line number 1 at column number 1 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) ~[nashorn.jar:?]

在此感谢您提供的任何帮助和宝贵的时间。

1 个答案:

答案 0 :(得分:1)

假设您的While Controller名为 LOOP ,以此为条件,它使用__jexl3函数:

  

$ {__ jexl3(vars.get(“ __ jm__LOOP__idx”)== null || vars.get(“ __ jm__LOOP__idx”)<3,)}