Язык JRuby в JSR223 не смог найти предопределенные переменные JMeter - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь выполнить JSR223 с языком jruby

Если я поставлю обычную строку, она будет работать, но я не могу использовать предопределенные переменные JMeter как log

log.info("Hello from JRuby");

Не удалось найти log:

2019-07-11 17:27:30,078 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: org.jruby.embed.EvalFailedException: (NameError) undefined local variable or method `log' for main:Object
javax.script.ScriptException: org.jruby.embed.EvalFailedException: (NameError) undefined local variable or method `log' for main:Object
    at org.jruby.embed.jsr223.JRubyEngine.wrapException(JRubyEngine.java:104) ~[jruby-core-1.7.27.jar:?]
    at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:93) ~[jruby-core-1.7.27.jar:?]
    at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:133) ~[jruby-core-1.7.27.jar:?]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:225) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:71) [ApacheJMeter_java.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
Caused by: org.jruby.embed.EvalFailedException: (NameError) undefined local variable or method `log' for main:Object
    at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:132) ~[jruby-core-1.7.27.jar:?]
    at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:90) ~[jruby-core-1.7.27.jar:?]
    ... 8 more
Caused by: org.jruby.exceptions.RaiseException: (NameError) undefined local variable or method `log' for main:Object
    at RUBY.(root)(<script>:1) ~[?:?]

Я нахожу в jruby wiki на JSR примеры с переменными с префиксом как @variableName

engine.put ("@ name", "cherry flower");

Но для @log я получаю другую ошибку (как ноль / ноль)

javax.script.ScriptException: org.jruby.embed.EvalFailedException: (NoMethodError) undefined method info 'для nil: NilClass`

Это можно преодолеть или я не могу запустить jruby внутри JMeter JSR223?

1 Ответ

0 голосов
/ 11 июля 2019

JRuby действительно может найти предопределенную переменную, используя префикс $:

$log.info("Hello from JRuby");
...