在SOAPUI中将参数从Java传递到Groovy

时间:2016-04-14 06:05:38

标签: groovy 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脚本。

但我的要求是,我需要传递变量说&#3​​4; a"在SOAPUI测试输入的java程序中。

例如: 在soapui中添加测试输入

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

我想在这个测试输入中引用来自java程序的变量。请让我知道。

1 个答案:

答案 0 :(得分:4)

Java Groovy 集成流畅。但是,访问String aa必须是对象中的属性而不是方法中的变量。让我解释;在您的情况下,例如在 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>

希望它有所帮助,