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

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

这里为了简单起见,我们只使用“3”而不是 vars.getObject("resultSet").size(),这是我的结果集的大小)

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

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

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

我找到并尝试过的语法(我的 while 组件名为 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:?]

在此先感谢您提供的任何帮助以及抽出宝贵的时间。

最佳答案

提供您的 While Controller名为LOOP,将其用作条件,它使用__jexl3功能:

${__jexl3(vars.get("__jm__LOOP__idx") == null || vars.get("__jm__LOOP__idx") < 3,)}

https://stackoverflow.com/questions/52605906/

相关文章:

macos - 安装 Unity 和 Android SDK for Mac 时,adb 在哪里?

nlp - gensim doc2vec "intersect_word2vec_format"命令

android - 带数据绑定(bind)的 ConstraintLayout

php - 什么是正确的 laravel 语法

date - 计算上次登录和当前日期之间的天数

php - cakephp 3 编辑用户用户名和密码 - 无法找到当前实体的表类

macos - 在OS X上构建OpenSSH:配置:警告:sandbox.h:存在,但无法编译

html - 使 SVG 适合父容器宽度

javascript - JSON 到 XML 使用 Javascript

scala - 在 Spark 中将连续变量转换为分类变量