【问题标题】:Adding an assertion to a TestStep in SoapUI API in Java在 Java 中的 SoapUI API 中向 TestStep 添加断言
【发布时间】:2015-08-04 12:05:29
【问题描述】:

我正在尝试使用 SoapUI API 自动化 Restful 测试。明白这一点,我不想打开 SoapUI GUI 来启动我的项目,尽管 WsdlProject 的保存文件产生的 xml 文件可以通过 GUI 导入和执行。

这是我所拥有的:

我创建了一个 SoapUI 项目:

WsdlProject wadlProject = new WsdlProject();

然后我添加一个测试套件:

WsdlTestSuite ts =  wadlProject.addNewTestSuite("HelloTestSuite");

然后我在这个测试套件中添加一个或多个测试用例:

WsdlTestCase tc = ts.addNewTestCase("HelloTestCase1");

最后我将测试步骤添加到测试用例中:

WsdlTestStep testStep = tc.addTestStep(HTTP_RQST,"HelloTestStep1",ip_addr+":"+port,"POST");

私有最终字符串 HTTP_RQST = HttpRequestStepFactory.HTTPREQUEST_TYPE;

现在,如果我想在我的 POST 测试步骤中添加有效负载:

testStep.setPropertyValue("request", "My Payload to send with the test");
######################### 现在我的问题是: ##### #####################

如果我想在这个测试步骤中添加一个简单的 contains assertion,它是如何完成的?

我试过了:testStep.setPropertyValue("Contains", "success");

但这不是它的工作方式。希望任何人都可以帮助我。

谢谢

【问题讨论】:

    标签: java soap soapui


    【解决方案1】:

    您可以使用以下代码来完成:

    import com.eviware.soapui.impl.wsdl.*
    import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase
    import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestStep
    import com.eviware.soapui.model.testsuite.TestAssertion
    import com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.SimpleContainsAssertion
    import com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep
    
    WsdlProject wadlProject = new WsdlProject();    
    WsdlTestSuite ts =  wadlProject.addNewTestSuite("HelloTestSuite");
    WsdlTestCase tc = ts.addNewTestCase("HelloTestCase1");
    WsdlTestStep testStep = tc.addTestStep("httprequest","HelloTestStep1",ip_addr+":"+port,"POST");
    TestAssertion assertion = ((HttpTestRequestStep)testStep).addAssertion("Contains");
    ((SimpleContainsAssertion)assertion).setToken("success");
    

    此代码只是添加contains 断言以在响应中查找字符串success 的示例。也可以添加另一种断言,但要考虑addAssertion 方法返回的com.eviware.soapui.model.testsuite.TestAssertion.TestAssertion 接口的实现,因为每个方法都有自己的方法来设置断言,在包含的情况下,实现是com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.SimpleContainsAssertion

    addTestStep() 方法的工作原理类似,它返回com.eviware.soapui.impl.wsdl.teststeps.WsdlTestStep 接口的实例,但是由于您的类型是"httprequest",因此实现是com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep... 在简历中,事情是没有正确的演员表您不能调用必要的方法来添加断言(至少使用 java ... groovy 完全没有问题:)

    希望对你有帮助,

    【讨论】:

    • 非常感谢!!我现在更好地理解它是如何工作的。我已经看了好几天的 java doc 了!
    • @JajaDrinker 很高兴为您提供帮助 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多