Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中的SoapUI API中向TestStep添加断言_Java_Soap_Soapui - Fatal编程技术网

在Java中的SoapUI API中向TestStep添加断言

在Java中的SoapUI API中向TestStep添加断言,java,soap,soapui,Java,Soap,Soapui,我正在尝试使用SOAPUIAPI自动化Restful测试。由此可以理解,我不想打开SOAPUIGUI来启动我的项目,尽管WsdlProject的save-on文件生成的xml文件可以通过GUI导入和执行 以下是我所拥有的: 我创建了一个SoapUI项目: WsdlProject wadlProject = new WsdlProject(); 然后添加一个测试套件: WsdlTestSuite ts = wadlProject.addNewTestSuite("HelloTestSuite"

我正在尝试使用SOAPUIAPI自动化Restful测试。由此可以理解,我不想打开SOAPUIGUI来启动我的项目,尽管WsdlProject的save-on文件生成的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\u类型

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

testStep.setPropertyValue("request", "My Payload to send with the test");
##########################现在我的问题是:########################## 如果我想在这个测试步骤中添加一个简单的contains断言,它是如何完成的

我尝试过:
testStep.setPropertyValue(“包含”、“成功”)

但事实并非如此。希望有人能帮助我


谢谢

您可以使用以下代码执行此操作:

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");
此代码只是一个示例,用于添加一个
包含的
断言,该断言在响应中查找字符串
成功
。也可以添加另一种断言,但要考虑
addAssertion
方法返回的接口的实现,因为在包含实现的情况下,每个断言都有自己的方法来设置断言

类似于
addTestStep()
方法的工作原理,它返回接口的实例,但是由于您的类型是
“httprequest”
,因此实现是。。。在resume中,如果没有正确的强制转换,您就无法调用必要的方法来添加断言(至少使用java…在groovy中根本没有问题
:)


希望有帮助,

非常感谢!!我现在更了解它的工作原理了。我读java文档已经好几天了,我迷路了@JajaDrinker很高兴能帮助你
:)