SOAPUI: How to include Groovy script from an external file

You can also create your scripts in java (eclipse) and then export it as a jar and add in soapui.

Here are the step:

  1. Create your code in java classes inside a package.
  2. Right click on the package and export (select jar)
  3. Add this jar to soapui /bin/ext folder (make sure to close soapui before this step)
  4. restart soapui and now you can import and use the scripts inside soapui as below.

  5. Create a groovy step and import the jar

    import package name.class name

  6. Call the function as:

    class name.function name(parameter);


Try this:

GroovyShell gs = new GroovyShell(getBinding()); 
gs.evaluate(new File('path/to/external.groovy').text);

Or even this:

evaluate(new File('path/to/external.groovy'));

The simplest way is to use Groovy Test Step within SOAPUI to run the external script using the GroovyScriptEngine. I use GroovyUtils to find the Project's path so that the entire project can be kept in one place to aid source control, editing etc.

import groovy.lang.Binding
import groovy.util.GroovyScriptEngine

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

// location of script file is relative to SOAPUI project file.
String scriptPath = groovyUtils.projectPath + "/groovy/"

// Create Groovy Script Engine to run the script.
GroovyScriptEngine gse = new GroovyScriptEngine(scriptPath) 

// Load the Groovy Script file 
externalScript = gse.loadScriptByName("Utility.groovy")  

// Create a runtime instance of script
instance = externalScript.newInstance()

// Sanity check 
assert instance!= null

// run the foo method in the external script
instance.foo()

Tags:

Groovy

Soapui