Mani Maran
Mani Maran

Reputation: 21

Can't able to run Groovy script in Jmeter

When I execute the groovy script in JSR223 Post processor,I get the following error.The script works fine with earlier version but when upgraded to Jmeter5.4.2 it throws this error.

021-12-20 19:47:02,491 WARN o.a.j.f.Groovy: Error running groovy script
javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: AESUtil for class: Script4
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:162) ~[groovy-all-2.4.16.jar:2.4.16]
    at javax.script.AbstractScriptEngine.eval(Unknown Source) ~[?:1.8.0_201]
    at org.apache.jmeter.functions.Groovy.execute(Groovy.java:120) [ApacheJMeter_functions.jar:5.4.2]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:138) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:113) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:100) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:280) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.getPath(HTTPSamplerBase.java:508) [ApacheJMeter_http.jar:5.4.2]
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.getUrl(HTTPSamplerBase.java:1079) [ApacheJMeter_http.jar:5.4.2]
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1296) [ApacheJMeter_http.jar:5.4.2]
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1285) [ApacheJMeter_http.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4.2]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Caused by: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: AESUtil for class: Script4
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:324) ~[groovy-all-2.4.16.jar:2.4.16]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:159) ~[groovy-all-2.4.16.jar:2.4.16]
    ... 15 more
Caused by: groovy.lang.MissingPropertyException: No such property: AESUtil for class: Script4
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) ~[groovy-2.4.6.jar:2.4.6]
    at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52) ~[groovy-2.4.6.jar:2.4.6]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307) ~[groovy-2.4.6.jar:2.4.6]
    at Script4.run(Script4.groovy:1) ~[?:?]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:321) ~[groovy-all-2.4.16.jar:2.4.16]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:159) ~[groovy-all-2.4.16.jar:2.4.16]
    ... 15 more

Upvotes: 0

Views: 1279

Answers (1)

Dmitri T
Dmitri T

Reputation: 168002

You "Can't able to run Groovy script in Jmeter" because you're trying to use AESUtil class (whatever it is) and the class is not known to JMeter/Groovy

In order to be able to use AESUtil class you need to put it under JMeter Classpath (copy the .jar providing the class to "lib" folder of your JMeter installation)

Also looking into dependencies for JMeter 5.4.2 it seems that JMeter uses groovy version 3.0.7 and from your log file it appears that you're having groovy-all-2.4.16.jar so I would recommend removing it from JMeter Classpath in order to avoid potential Jar Hell

More information: How to Reuse Your JMeter Code with JAR Files and Save Time

Upvotes: 1

Related Questions