如何从属性或xml文件中填充soap请求参数?

时间:2012-12-13 11:19:26

标签: java junit soapui

我正在构建Web服务测试框架。我正在使用soap ui(而非pro)进行集成测试。我有一个运行我的测试运行器的ant脚本。这就是我的测试运行器的样子:

public class GatewayIntegrationTestRunner {

    JUnitReportCollector collector = new JUnitReportCollector();
    String path = "D:/DATA/Gateway/GWIntegrationTest_soapUI/GWIntegrationTestWksp/gateway-integration-test/src/META-INF/junit-style-test-report/html";

    @Test
    public void runGatewayIntegrationTests() throws Exception {

        SoapUITestCaseRunner  runner = new SoapUITestCaseRunner ();
        runner.setProjectFile("D:/DATA/Gateway/GWIntegrationTest_soapUI/GWIntTestStdProject/Liberate-Gateway-std-project-soapui-project.xml");

        runner.getTestCase();
        runner.setOutputFolder(path);
        runner.setJUnitReport(true);

        runner.run();
        runner.exportJUnitReports(collector, path, new WsdlProject());
        runner.printReport(0);
    }
}

我的测试运行器加载我的soap ui项目xml并运行soap ui项目中的空间测试。我的要求是我想在不同的点为同一个api指定不同的请求参数。早些时候,当我在Java中进行集成测试时,我在xml文件中指定了这些请求参数。我怎样才能在soapui中实现这一目标?我尝试过使用soapui中的属性和属性转移,但没有取得多大成就。根据部署应用程序的位置,我想修改请求数据,抓取它可能来自xml文件或属性文件。我怎样才能在soapui中实现它?提前致谢。

1 个答案:

答案 0 :(得分:1)

在SOAPUI中定义api时,尝试执行以下操作:

假设您有资源API GET(https:// your_host / Username)

您可以通过将上述资源更改为

来更改测试用例级别的Usename值
  

(HTTPS:// your_host / $ {#测试用例#用户名})

完成后,为上述资源创建一个测试用例(双击测试用例)或右键单击然后显示测试编辑器。

在窗口出现时,会出现一个名为(设置脚本)的按钮,然后将其复制到框中:

  

def username =“John”
  testRunner.testCase.setPropertyValue( '用户名', “$ {用户名}”)

然后单击框上方的绿色小标记,然后切换到(设置脚本)旁边的(属性),您应该可以在名称下看到用户名,在值下看到John。

为该测试用例完成,其值为John作为用户名。

现在你需要做的就是复制测试用例(右键单击然后克隆TestCase)然后将username的值更改为其他内容,例如

  

def username =“Chris”
  testRunner.testCase.setPropertyValue( '用户名', “$ {用户名}”)

希望以上有所帮助,这就是你想要的。