Javascript Jmeter-当循环条件无效时';t出口
试图在脚本中构建一个小循环控件以防止它无限循环(因为不幸的是,在SUT中这是一个严重的可能性) 我有两件事感兴趣:Javascript Jmeter-当循环条件无效时';t出口,javascript,while-loop,jmeter,Javascript,While Loop,Jmeter,试图在脚本中构建一个小循环控件以防止它无限循环(因为不幸的是,在SUT中这是一个严重的可能性) 我有两件事感兴趣: 状态-“完成”是所需的状态 loopcount-完成循环不应超过10个 我正在从JSON提取器成功检索“state”,并已将“loopcount”定义为While控制器中的计数器元素。 两者都成功地检索到了相关信息 我的问题是我的javascript条件在While控制器中,它一直在循环。这是我的代码: ${__javaScript("${state}"!="COMPLETE"||
状态-“完成”是所需的状态
loopcount-完成循环不应超过10个 我正在从JSON提取器成功检索“state”,并已将“loopcount”定义为While控制器中的计数器元素。 两者都成功地检索到了相关信息 我的问题是我的javascript条件在While控制器中,它一直在循环。这是我的代码:
${__javaScript("${state}"!="COMPLETE"||"${loopcounter}" < 10),)}
${uuu javaScript(${state}”!=“COMPLETE”| |“${loopcounter}”<10),)}
我希望它在state=Complete或loopcounter超过10个循环时退出循环
我到底做错了什么?两个问题:
不应转换为字符串。所以去掉它周围的双引号loopCounter
- 您需要逻辑AND运算符,而不是OR运算符
"${state}" != "COMPLETE" && ${loopcounter} < 10
“${state}”!=“完成”&&${loopcounter}<10
为了防止无限循环,您可以将其添加到下面,并写入最大秒数
您可以在控制器运行时签入一个部件
作为${uuu javaScript(${loopcounter}<10),)}
并在循环中添加If控制器
,并检查If的一部分作为${{uuu javaScript(${state}”!=“COMPLETE”)}
和
1.添加测试操作
以停止线程
2.将loopcounter设置为大于10,并添加测试操作
,以转到下一个循环迭代,并使其失败循环
Complete
和Complete
是不同的${loopcounter}
变量周围不需要引号&
运算符替换|
运算符 ${__javaScript(("${state}"!="Complete" && ${loopcounter} < 5),)}
${uuu javaScript(“${state}”!=“Complete”&&${loopcounter}<5),)
有关更多详细信息,请参阅文章 已经修改了我的表达式,现在它确实退出了循环,但是现在得到了以下错误:error o.a.j.f.JavaScript:error processing JavaScript[(“PENDING”!=“COMPLETE”&&&${loopcounter}<5)]很可能您的
${loopcounter}
变量没有设置,或者随后我得到了javax.script.ScriptException:Expected)但找到了{在第1行第27列。是否需要在()中封装loopcounter部分?在哪里最好设置${loopcounter}变量?我在While循环中设置了循环计数器元素,将其放置在外部会停止进程工作。是否需要在用户定义的变量中指定?在每个Do循环退出后,将计数器重置回1的最佳方法是什么?