smicyk / groovy-jmeter

A Groovy-based DSL for building and running JMeter test plans from command line and more.
Apache License 2.0
13 stars 1 forks source link

Failed to create component for 'insert' #105

Closed AntonioSun closed 2 years ago

AntonioSun commented 2 years ago

I got Failed to create component for 'insert'. Here is the way to replicate the problem:

Caught: java.lang.RuntimeException: Failed to create component for 'insert' reason: java.lang.NullPointerException: Cannot invoke method toURI() on null object
java.lang.RuntimeException: Failed to create component for 'insert' reason: java.lang.NullPointerException: Cannot invoke method toURI() on null object
        at script$_executeScript_closure1$_closure2.doCall(script.groovy:14)
        at script$_executeScript_closure1$_closure2.doCall(script.groovy)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at script$_executeScript_closure1.doCall(script.groovy:7)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at net.simonix.dsl.jmeter.TestScriptRunner.invokeBuilder(TestScriptRunner.groovy:175)
        at net.simonix.dsl.jmeter.TestScriptRunner$invokeBuilder$0.callStatic(Unknown Source)
        at net.simonix.dsl.jmeter.TestScriptRunner.configure(TestScriptRunner.groovy:154)
        at net.simonix.dsl.jmeter.TestScriptRunner$configure.call(Unknown Source)
        at net.simonix.dsl.jmeter.TestScriptBase.start(TestScriptBase.groovy:96)
        at net.simonix.dsl.jmeter.TestScriptBase$start$0.callCurrent(Unknown Source)
        at net.simonix.dsl.jmeter.TestScriptBase.start(TestScriptBase.groovy:42)
        at net.simonix.dsl.jmeter.TestScriptBase$start.callCurrent(Unknown Source)
        at script.executeScript(script.groovy:6)
        at net.simonix.dsl.jmeter.TestScript.run(TestScript.groovy:150)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Caused by: java.lang.NullPointerException: Cannot invoke method toURI() on null object
        at net.simonix.dsl.jmeter.factory.AbstractTestElementFragmentFactory.newInstance(AbstractTestElementFragmentFactory.groovy:58)
        ... 22 more
smicyk commented 2 years ago

Hi, this is mostly because the main source for the insert is the script classpath which is folder where you execute the script. You can workaround it by adding structure folder to your class path e.g.:

groovy -cp ../structure script.groovy

Assuming the structure folder has fragments folder you don't need to change insert you can leave it as it was. Means the insert 'fragments/xxx'

AntonioSun commented 2 years ago

Thanks!