如何包含来自外部文件的groovy脚本?


我尝试使用:

def script = new GroovyScriptEngine('d:/soapui/payment.v2').with {
    loadScriptByName( 'proxy.groovy' )
}
this.metaClass.mixin script


但是我得到:



更新资料

是否有可能将我的方法打包到jar或类似的东西中,并从Script TextArea使用它们?

最佳答案

最简单的方法是使用Groovy Test Step within SOAPUI使用GroovyScriptEngine运行外部脚本。我使用GroovyUtils查找项目的路径,以便将整个项目保存在一个地方,以帮助进行源代码控制,编辑等。

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()

09-11 20:08