2016-04-14 36 views
2

我有如下一个java程序从Java参数传递给Groovy中,在SOAPUI

package test; 
class HelloWorld { 
    public static void main(String[] args) { 
    System.out.println("Hi"); 
    String a="World"; 
    } 
} 

而且如下Groovy脚本,

import test.HelloWorld 
HelloWorld.main(null) 

而且我保持后使用这个Groovy脚本在SOAPUI/bin/ext SOAPUI文件夹中的jar文件。

我可以在控制台中执行这个groovy脚本。

但我的要求是,我需要在SOAPUI测试输入中的java程序中传递变量“a”。

对于如: 添加测试输入的soapUI

<add> 
<a> "Variable a" </a> 
<b>5</b> 
</add> 

我想是指在本次测试变量出来的java程序的input.Please让我知道的方式。

回答

4

Java and Groovy集成流畅。但要访问String a的值a必须和属性中的对象不是一个方法中的变量。让我解释;在你的的Java一部分,而不是一个main方法情况下,例如创建一个对象像:

package test; 
class HelloWorld { 

    private String a; 
    public HelloWorld(){ 
    this.a = "World"; 
    } 

    public String getA(){ 
    return this.a; 
    } 
} 

编译和jar添加到SOAPUI_HOME/bin/ext

然后从Groovy脚本在SOAPUI,你可以实例化类和获得的价值:

import test.HelloWorld 
def a = new HelloWorld().getA() 
log.info a // this prints --> World 

如果除了要在请求中使用该值你已经设置的一些属性值测试级别(例如,在测试用例):

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> 

希望它能帮助,

+0

尼斯和简单的例子。 – Rao

+0

@Rao谢谢':)' – albciff

+0

精彩的解释..感谢:) – rk4