Xquery匹配声明
它使用Xquery表达式从target属性中选择内容。为了更好地理解XQuery,我们需要更大的响应XML,让我们导入另一个WSDL,如下所示:http : //www.webservicex.net/medicareSupplier.asmx? WSDL
步骤1:在现有项目上单击鼠标右键,然后选择“添加WSDL”。
步骤2:在现有项目上单击鼠标右键,然后选择“添加WSDL”。将其他选项保留为默认选项,然后单击“确定”按钮。
步骤3:所有操作如下所示。
步骤4:现在,让我们在为测试货币转换器创建的同一测试套件中添加一个测用例。
步骤5:输入测试用例的名称,然后单击“确定”按钮
步骤6:创建测试用例,如下所示。
步骤7:添加 一个新的“ Soap Test Request”类型的测试步骤,如下所示。
步骤8:输入测试步骤的名称。让我们说– Supplier_by_City这将更有意义单击“确定”。
步骤9:选择我们要验证的工序。在这种情况下,它是“ MedicareSupplierSoap-> GetSupplierByCity”。点击“确定”。
步骤10:输入测试用例的名称,然后单击“确定”。
步骤11:将显示请求XML大纲,如下所示。
步骤12:现在,让我们查找“纽约”市的所有供应商信息。
为此,将以下行添加到您的代码。
<GetSupplierByCity xmlns =“ http://www.webservicex.net/”>
<城市>纽约</城市>
</ GetSupplierByCity>
以下网址中的WSDL- http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity
步骤13:执行测试后,我们收到以下响应
步骤14:假设我们需要验证所有供应商编号。我们不能使用XPath断言,因为我们需要拥有数百个XPath断言。因此,在这种情况下不可避免地使用XQuery。
XQuery断言可以帮助我们验证一组本质上是重复的XML响应。
步骤15:现在点击“添加断言”,
在这种情况下,选择“断言类别”-属性内容。
选择断言类型作为“ XQuery断言”
点击“添加”。
步骤16:类似于XPath断言,我们需要声明名称空间。
单击“声明”按钮以自动允许SOAP UI声明名称空间。单击声明按钮后,将向用户显示带有消息“从架构声明名称空间”的“弹出”消息。单击“是”继续进行如下所示。
注意:按下“声明按钮”后,您可能最终得到不同的URL作为名称空间声明,但是,实际的Web服务位置名称空间才是编码时要考虑的地方。
为了检索所有供应商编号,我们需要编写一个XPath查询,并将其放置在<SupplierNumber>和</ SupplierNumber>标记内。
单击“从当前选择”,将从当前响应中执行。
单击“从当前选择”后,将列出所有供应商编号。
点击“保存”。
// Namespace declaration declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; declare namespace x = ''; // Placing the result in Myresult Tags { // Iterating through all the supplier number for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData //Return all the Supplier number within ‘SupplierNumber’ Tags. return {data($x/ns1:SupplierNumber)} }
步骤17:执行XQuery断言,并将最终结果显示在“断言”面板中,如下所示。现在,我们已经成功添加了一个Xquery断言,通过该断言我们已经验证了所有供应商编号信息。每次将请求发送到Web服务器时,都会将其与实际值进行比较。
注意:不会显示实际值。如果所有实际值均与期望值相同,则显示“ VALID”(有效),否则将显示“ Failed”(失败)。
SoapUI中是如何断言的呢(一)
SoapUI中是如何断言的呢(二)
使用CSV模块和Pandas在Python中读取和写入CSV文件
python全栈测试社区
长按左侧二维码,识别关注
欢迎将文章分享到朋友圈
如需转载,请在后台回复“转载”获取授权