2016-04-14 62 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