在 SOAPUI 中将参数从 Java 传递到 Groovy
Passing parameters from Java to Groovy in SOAPUI
我有一个 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 脚本。
但我的要求是,我需要在 SOAPUI 测试输入的 java 程序中传递变量 say "a"。
例如:
在 soapui 添加测试输入
<add>
<a> "Variable a" </a>
<b>5</b>
</add>
我想在这个测试中引用来自 java 程序的那个变量 input.Please 让我知道方法。
Java和Groovy整合顺利。但是,要访问 String a
值,a
必须是对象中的属性,而不是方法中的变量。让我解释;在你的情况下,例如在 Java 部分而不是 main
方法创建一个 object 像:
package test;
class HelloWorld {
private String a;
public HelloWorld(){
this.a = "World";
}
public String getA(){
return this.a;
}
}
编译并将 jar 添加到 SOAPUI_HOME/bin/ext
。
然后从 SOAPUI 中的 groovy 脚本 您可以实例化 class 并获取值:
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>
希望对您有所帮助,
我有一个 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 脚本。
但我的要求是,我需要在 SOAPUI 测试输入的 java 程序中传递变量 say "a"。
例如: 在 soapui 添加测试输入
<add>
<a> "Variable a" </a>
<b>5</b>
</add>
我想在这个测试中引用来自 java 程序的那个变量 input.Please 让我知道方法。
Java和Groovy整合顺利。但是,要访问 String a
值,a
必须是对象中的属性,而不是方法中的变量。让我解释;在你的情况下,例如在 Java 部分而不是 main
方法创建一个 object 像:
package test;
class HelloWorld {
private String a;
public HelloWorld(){
this.a = "World";
}
public String getA(){
return this.a;
}
}
编译并将 jar 添加到 SOAPUI_HOME/bin/ext
。
然后从 SOAPUI 中的 groovy 脚本 您可以实例化 class 并获取值:
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>
希望对您有所帮助,