如何修复while控制器中的Javascript错误?

如何修复while控制器中的Javascript错误?,javascript,jmeter,Javascript,Jmeter,我在Jmeter脚本中使用While控制器。我在while控制器中给出了以下条件 ${uuu javaScript(${counter}

我在Jmeter脚本中使用While控制器。我在while控制器中给出了以下条件

${uuu javaScript(${counter}<10)}

虽然条件按预期工作,但它在日志中抛出以下错误

2019-02-02 15:58:21,315 ERROR o.a.j.f.JavaScript: Error processing Javascript: [${counter} < 10]

javax.script.ScriptException: <eval>:1:1 Expected ; but found {
${counter} < 10
 ^ in <eval> at line number 1 at column number 1
    at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:537) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:524) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) ~[nashorn.jar:?]
    at org.apache.jmeter.functions.JavaScript.executeWithNashorn(JavaScript.java:142) [ApacheJMeter_functions.jar:3.2 r1790748]
    at org.apache.jmeter.functions.JavaScript.execute(JavaScript.java:103) [ApacheJMeter_functions.jar:3.2 r1790748]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:141) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:116) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:101) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.WhileController.getCondition(WhileController.java:124) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.WhileController.endOfLoop(WhileController.java:56) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.WhileController.next(WhileController.java:102) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:219) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.GenericController.next(GenericController.java:173) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.LoopController.next(LoopController.java:123) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:219) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.GenericController.next(GenericController.java:173) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.control.LoopController.next(LoopController.java:123) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:87) [ApacheJMeter_core.jar:3.2 r1790748]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:274) [ApacheJMeter_core.jar:3.2 r1790748]
2019-02-02 15:58:21315错误o.a.j.f.JavaScript:处理JavaScript时出错:[${counter}<10]
javax.script.ScriptException::应为1:1;但是发现{
${counter}<10
^在第1行第1列中
在jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)~[nashorn.jar:?]
在jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:537)~[nashorn.jar:?]
在jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:524)~[nashorn.jar:?]
在jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)~[nashorn.jar:?]
在jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)~[nashorn.jar:?]
在org.apache.jmeter.functions.JavaScript.executeWithNashorn(JavaScript.java:142)[ApacheJMeter_functions.jar:3.2 r1790748]
在org.apache.jmeter.functions.JavaScript.execute(JavaScript.java:103)[ApacheJMeter_functions.jar:3.2 r1790748]
在org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:141)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:116)[ApacheJMeter_core.jar:3.2 r1790748]
位于org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:101)[ApacheJMeter_core.jar:3.2 r1790748]
位于org.apache.jmeter.control.WhileController.getCondition(WhileController.java:124)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.WhileController.endOfLoop(WhileController.java:56)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.WhileController.next(WhileController.java:102)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.GenericController(GenericController.java:219)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.GenericController.next(GenericController.java:173)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.LoopController.next(LoopController.java:123)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.GenericController(GenericController.java:219)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.GenericController.next(GenericController.java:173)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.control.LoopController.next(LoopController.java:123)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:87)[ApacheJMeter_core.jar:3.2 r1790748]
在org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:274)[ApacheJMeter_core.jar:3.2 r1790748]

任何人都知道这个错误背后的原因吗?如何修复它?

也许你错过了更多的背景信息

var计数器=42,
__javaScript=v=>`got${v}`;
log(`${uu javaScript(`${counter}`<10}`);

//^^ ^
可能在第一次迭代过程中未定义
${counter}
变量,选项如下:

  • ${counter}
    变量一个初始值,使用
  • 检查
    计数器
    变量是否使用
  • 然而,你可以通过迁移到(顺便说一句)一箭双雕,条件是:

    ${__groovy(vars.get('counter') == null || (vars.get('counter') as int) < 10,)}
    
    ${groovy(vars.get('counter')==null(vars.get('counter')as int)<10,)}