JMeter - jexl3函数不能声明局部变量

时间:2018-04-25 11:26:44

标签: jmeter jmeter-4.0 jexl

我正在使用最新的JMeter 4并尝试在jexl syntax中使用声明局部变量的基本jexl function

  

局部变量可以使用var关键字定义;他们的识别规则与上下文变量相同。   基本声明:var x;

所以在JMeter中我试过

${__jexl2(var x;)}

并且成功了,但是使用${__jexl3(var x;)}会抛出一个解析器异常:

2018-04-25 14:18:16,451 ERROR o.a.j.f.Jexl3Function: An error occurred while evaluating the expression "var a;"

org.apache.commons.jexl3.JexlException$Parsing: @1:1 parsing error in 'var'
    at org.apache.commons.jexl3.JexlEngine.createExpression(JexlEngine.java:304) ~[commons-jexl3-3.1.jar:3.1]
    at org.apache.jmeter.functions.Jexl3Function.execute(Jexl3Function.java:94) [ApacheJMeter_functions.jar:4.0 r1823414]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:101) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:281) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.testelement.AbstractTestElement.getName(AbstractTestElement.java:165) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.sampler.DebugSampler.sample(DebugSampler.java:56) [ApacheJMeter_components.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:416) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:250) [ApacheJMeter_core.jar:4.0 r1823414]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]

是JMeter问题还是jexl3问题,还是我错过了什么?

修改

除了解析var失败之外,它无法解析;,这是jexl2失败的jexl2的工作示例:

${__jexl3(abc=new("java.util.ArrayList"\, 1);)}

1 个答案:

答案 0 :(得分:1)

根据bug,它是JMeter Jexl3实现中的jexl issue

  

JMeter使用JexlExpression代替JexlScript

错误现已修复,将在下一个版本上载

相关问题