我有一个java程序,如下所示,
package test;
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hi");
String a="World";
}
}
和Groovy脚本如下,
import test.HelloWorld
HelloWorld.main(null)
我将jar文件保存在/ bin / ext SOAPUI文件夹中后,我在SOAPUI中使用这个groovy脚本。
我能够在控制台中执行这个groovy脚本。
但我的要求是,我需要传递变量说" a"在SOAPUI测试输入的java程序中。
例如: 在soapui中添加测试输入
<add>
<a> "Variable a" </a>
<b>5</b>
</add>
我想在这个测试输入中引用来自java程序的变量。请让我知道。
答案 0 :(得分:4)
Java 和 Groovy 集成流畅。但是,访问String a
值a
必须是对象中的属性而不是方法中的变量。让我解释;在您的情况下,例如在 Java 部分而不是main
方法创建对象,如:
package test;
class HelloWorld {
private String a;
public HelloWorld(){
this.a = "World";
}
public String getA(){
return this.a;
}
}
编译并将罐子添加到SOAPUI_HOME/bin/ext
。
然后从SOAPUI中的 groovy脚本中,您可以实例化该类并获取值:
import test.HelloWorld
def a = new HelloWorld().getA()
log.info a // this prints --> World
如果您想在请求中使用此值,则需要在某个测试级别设置属性值(例如在 testCase 中):
import test.HelloWorld
def a = new HelloWorld().getA()
log.info a // this prints --> World
testRunner.testCase.setPropertyValue('myVar',a)
现在您的变量已设置,您可以使用以下符号在请求中使用它:${#TestCase#myVar}
,在您的请求示例中:
<add>
<a>${#TestCase#myVar}</a>
<b>5</b>
</add>
希望它有所帮助,