在 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 让我知道方法。

JavaGroovy整合顺利。但是,要访问 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>

希望对您有所帮助,