JMeter - функция jexl3 не может объявлять локальные переменные - PullRequest
0 голосов
/ 25 апреля 2018

Я использую последний JMeter 4 и пытаюсь использовать базовый jexl синтаксис объявления локальной переменной в функции jexl

Могут быть определены локальные переменныеиспользуя ключевое слово 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, который потерпел неудачу с jexl3:

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

1 Ответ

0 голосов
/ 16 июля 2018

Это была ошибка в реализации JMeter Jexl3 в соответствии с проблемой jexl :

JMeter, использующий JexlExpression вместо JexlScript

Ошибка исправлена ​​и будет загружена в следующей версии

...