13

如何从外部文件中包含 groovy 脚本? 在此处输入图像描述

我试图使用:

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

但我得到:

在此处输入图像描述

更新

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

4

4 回答 4

18

最简单的方法是使用SOAPUI 中的Groovy Test Step 来使用 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()
于 2013-01-25T13:34:45.183 回答
2

您还可以在 java (eclipse) 中创建脚本,然后将其导出为 jar 并添加到 soapui。

这是步骤:

  1. 在包内的 java 类中创建代码。
  2. 右键单击包并导出(选择jar)
  3. 将此jar添加到soapui /bin/ext文件夹(确保在此步骤之前关闭soapui)
  4. 重新启动soapui,现在您可以导入和使用soapui中的脚本,如下所示。

  5. 创建一个 groovy 步骤并导入 jar

    导入包名.类名

  6. 调用函数为:

    类名.函数名(参数);

于 2015-10-10T11:01:32.983 回答
1

试试这个:

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

甚至这样:

evaluate(new File('path/to/external.groovy'));
于 2013-01-18T14:22:47.093 回答
0

ExpandoMetaClass.enableGlobally()对于 mixin 错误消息,如果您使用then ,您可能会摆脱它this.metaClass = null。一开始,在你开始混音之前。

于 2013-01-24T14:50:13.757 回答