如何在SoapUI中以编程方式创建测试步骤?

时间:2013-03-27 15:09:46

标签: groovy soapui

我希望在现有的SoapUI项目中自动创建测试步骤。每个测试步骤都是从保存在单个文件中的记录SOAP请求中加载的。每个测试步骤都可以具有相同的断言,从另一个测试步骤复制。

我想我可以在安装脚本中使用Groovy做一些事情。我还可以使用其他任何选项吗?

2 个答案:

答案 0 :(得分:1)

是的,使用Groovy的WsdlTestStepFactory

答案 1 :(得分:1)

有许多不同的测试步骤。对于groovy测试步骤,您可以尝试:

    public String createGroovyScriptTestStep() {
    try {
        String projectName = "C:\\YourProjectName.xml";
        File projectFile = new File(projectName);
        WsdlProjectPro project = new WsdlProjectPro(projectName);

        if (!projectFile.exists()) {
            return "no_project_already_exists";
        }

        WsdlTestSuite testSuite = project
                .getTestSuiteByName("TestSuiteName");

        if (testSuite == null) {
            return "testsuite does not exist";
        } else {
            WsdlTestCase testCase = testSuite
                    .getTestCaseByName("TestCaseName");

            if (testCase == null) {
                return "testcase does not exist";
            } else {

                if (testCase.getTestStepByName("StepName") != null) {

                    return "teststep_already_exists";
                }

                WsdlGroovyScriptTestStep testStep = (WsdlGroovyScriptTestStep) testCase
                        .addTestStep(GroovyScriptStepFactory.GROOVY_TYPE,
                                "StepName");

                testStep.setDescription("Description");
                testStep.setScript("System.out.println('Hi')");

                project.saveIn(projectFile);

                return "teststep_successfully_created";
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

您需要关注Maven家属:

    <dependency>
        <groupId>com.github.redfish4ktc.soapui</groupId>
        <artifactId>maven-soapui-extension-plugin</artifactId>
        <version>4.6.4.1</version>
    </dependency>
    <dependency>
        <groupId>com.fifesoft</groupId>
        <artifactId>rsyntaxtextarea</artifactId>
        <version>1.4.1</version>
    </dependency>