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:现在点击“添加断言”,
步骤16:类似于XPath断言,我们需要声明名称空间。
单击“声明”按钮以自动允许SOAP UI声明名称空间。单击声明按钮后,将向用户显示带有消息“从架构声明名称空间”的“弹出”消息。单击“是”继续进行如下所示。
2.为了检索所有供应商编号,我们需要编写一个XPath查询,并将其放置在<SupplierNumber>和</ SupplierNumber>标记内。
3.单击“从当前选择”,将从当前响应中执行。
4.单击“从当前选择”后,将列出所有供应商编号。
5.点击“保存”。
// 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”(失败)。