0

我正在尝试将 java 程序作为我的 Parasoft 测试套件中的可执行文件运行。一旦运行测试,可执行文件就会执行并将结果存储在一个文件夹中。但是现在,作为增强的一部分,我需要将一个参数传递给 Java 代码,而 Java 代码需要该参数才能在特定文件夹中生成结果。有谁知道 java 代码需要如何与 SOA 测试集成,如何从 SOA 测试传递参数,以及如何在 java 代码中处理该参数?

将不胜感激任何帮助..谢谢

4

2 回答 2

2

如果我理解错误,请纠正我。

您想从 SOATest 内部启动一个 Java 应用程序。这将独立运行,您也可以从命令行启动它?在这种情况下,您可以像在命令行上一样使用 Groovy 来生成进程。查看Groovy 文档

*** SOATest.ExtensionTool ***

import com.parasoft.api.Application;
import com.parasoft.api.ScriptingContext;

def callJavaFromSoaTest(Object input, ScriptingContext scriptingContext) {
  command = 'java -jar /path/to/your/java/class/JavaMain.jar Parameter';
  result = command.execute().text;
  Application.showMessage(result);
}

*** Java Class ***

public class JavaMain {

  public static void main(String[] args) {
    String name = "Harry";
    if (args.length > 0) {
      name = args[0];
    }
    System.out.println("Hello " + name + ", how is your day?");
  }

}

于 2016-04-06T02:29:42.140 回答
0

您需要在 java 代码中实现 com.parasoft.api 以获得所需的参数;更多细节可以在帮助部分搜索:“可扩展性(脚本)基础”

定义一个测试套件变量,将您的值存储在其中,然后调用:

varValue = context.getValue("x")

这是一个从数据源获取值的 Java 示例。

package examples;

import soaptest.api.*;
import com.parasoft.api.*;

public class Keyword {

    public Object getKeywords(Object input, ExtensionToolContext context) 
            throws com.parasoft.data.DataSourceException {
        String[] titles = new String[1];
        titles[0] = context.getValue("Books", "keywords");
        return SOAPUtil.getXMLFromString(titles);
    }

}
于 2016-02-18T20:01:17.767 回答