我正在使用 JMeter 5.0 并且我正在尝试遍历数据库结果集。
这里为了简单起见,我们只使用“3”而不是 vars.getObject("resultSet").size(),这是我的结果集的大小)
我正在尝试使用 WHILE 组件自己的索引使其停止
(请不要告诉我如何使用计数器组件,因为鉴于我找到的关于 JMeter 的 WHILE 使用计数器的所有帮助,我可以自己使用它,但这对我来说是违反直觉的(没有双关语意) ,就像在任何其他语言中递增“i”一样:
`
for(int i = 0;i < 10;)
{
// do stuff
i++;
}
`
我找到并尝试过的语法(我的 while 组件名为 LOOP):
${__jm__LOOP__idx} < 3
: 不返回错误但不停止
${__javaScript("${__jm__LOOP__idx}" < 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/