SoapUI 属性转移


SoapUI 属性转移

有时我们需要从响应消息中获取一些特定的内容或信息,然后将其添加到后续请求中。这些情况需要一些特定的机制来检索值并将其传输到 SoapUI 项目的其他元素。因此,我们需要使用SoapUI 属性转移TestStep。

Adding Property Transfer

要在SoapUI 中使用属性转移,我们必须遵循以下步骤。

步骤 1:单击 Soap 图标创建一个新的 Soap 项目,然后输入初始WSDL URL,如下所示。

  1. http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL

SoapUI 属性转移

第 2 步:单击 OK 按钮后,它将处理Soap 项目及其相关服务,如下所示。

SoapUI 属性转移

第三步:右击'CountryInfoServiceSoapBinding 12',打开生成Test Suite,如下图。

SoapUI 属性转移

步骤 4:当点击 OK 按钮时,它会显示一个对话框来指定测试套件名称,如下所示。

SoapUI 属性转移

步骤5:点击OK按钮后,它会显示测试套件内的默认测试用例,如下所示。

SoapUI 属性转移

Creating the Clone for Property Transfer

第 6 步:右键单击CountryInforServiceSoapBinding TestSuite,为 Property 转移创建一个新的测试用例,如下所示。

SoapUI 属性转移

在这里,我们将测试用例的名称指定为Property Transfer TestCase,然后单击 OK 按钮。

步骤 7:之后,它在CountryInforServiceSoapBinding TestSuite内创建 Property Transfer TestCase并显示 TestCase 窗口,如下所示。

SoapUI 属性转移

步骤 8:现在,我们传输或克隆两个测试用例请求:CountryISOCode TestCase请求和Property Transfer 测试用例测试步骤中的CapitalCity TestCase请求,如下所示。

克隆CountryISOCode 测试用例:单击CountryISOCode 测试用例的 (+),然后右击 CountryISOCode 请求,如下所示。

SoapUI 属性转移

单击克隆测试步骤以打开用于定义目标测试用例的“克隆测试步骤窗口”。在这里,我们为财产转让测试用例指定了目标“CountryISOCode 请求”,如下所示。

SoapUI 属性转移

步骤 9:单击 OK 按钮后,它将CountryISOCode请求传输到 Property Transfer TestCase 并在右侧窗格中显示XML请求,如下所示。

SoapUI 属性转移

Step 10:同理,我们将CapitalCity TestCase的请求转移到Property Transfer TestCase,如下图。

SoapUI 属性转移

步骤11:现在,双击属性Transfer test Case 查看可用的测试用例,如下所示。

SoapUI 属性转移

Add Property transfer

Step 12:右击TestStep的CountryISOCode请求,然后选择Property Transfer服务,如下图。

SoapUI 属性转移

第 13 步:当我们单击Property Transfer 时,它会显示一个弹出对话框,指定属性转移的新步骤的名称。

SoapUI 属性转移

步骤14:一旦OK按钮被点击,它增加了产权转让产权转让测试用例,然后显示一个新的产权转让窗口来添加属性,如下图所示。

SoapUI 属性转移

第 15 步:要添加属性,请单击“属性转移”窗口左上角的 (+) 图标。之后,它会显示一个弹出对话框,指定在属性传输中传输值的名称。输入名称CountryISO并单击确定

SoapUI 属性转移

第 16 步:之后,它会在Property Transfer窗口中显示CountryISO值,如下所示。

SoapUI 属性转移

此处,CountryISO值被添加到 CountryISOCode 以将值传输到CapitalCity请求的副本中。之后,将CountryISOCode属性设置为Response,然后将CapitalCity属性的副本设置为Request,如上所示。

第 17 步:现在,单击请求/响应按钮 (3) 来声明源和目标表达式的命名空间,如下所示。

SoapUI 属性转移

步骤 18:双击 CountryISOCode 以显示 XML 请求文件,如图所示。

SoapUI 属性转移

步骤19:指定国家名称为美国后,点击绿色运行按钮执行查询,如下图。

SoapUI 属性转移

以下代码片段以 XML 格式显示请求 CountryISOCode

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.oorsprong.org/websamples.countryinfo">  
   <soapenv:Header/>  
   <soapenv:Body>  
      <web:CountryISOCode>  
         <web:sCountryName>United State</web:sCountryName>  
      </web:CountryISOCode>  
   </soapenv:Body>  
</soapenv:Envelope>

以下代码片段显示了XML 格式的响应 CountryISOCode

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
   <soap:Body>  
      <m:CountryISOCodeResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo">  
         <m:CountryISOCodeResult>US</m:CountryISOCodeResult>  
      </m:CountryISOCodeResponse>  
   </soap:Body>  
</soap:Envelope>

第 20 步:现在,我们必须从源代码的CountryISOCode 响应XML 中指定//m:CountryISOCodeResult以获取 ISO 代码值。

SoapUI 属性转移

步骤21:双击CapitalCity请求的副本,然后为CapitalCity的目标副本指定请求命名空间,如下所示。

SoapUI 属性转移

这是CapitalCity XML的请求副本

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.oorsprong.org/websamples.countryinfo">  
   <soapenv:Header/>  
   <soapenv:Body>  
      <web:CapitalCity>  
         <web:sCountryISOCode>?</web:sCountryISOCode>  
      </web:CapitalCity>  
   </soapenv:Body>  
</soapenv:Envelope>

第 22 步:同样,我们必须在目标处从CapitalCity Request XML指定//web:sCountryISOCode以获取指定国家/地区的首都名称。

SoapUI 属性转移

步骤23:点击绿色运行按钮,执行财产转移,获取国家ISO代码,如下图。

SoapUI 属性转移

步骤 24:之后,我们必须双击“Popery Transfer TestCase”来执行所有可用的测试步骤,如下所示。

SoapUI 属性转移

当我们单击运行按钮时,所有测试步骤都在 Property Transfer TestCase 内执行。

SoapUI 属性转移

第 25 步:现在,从财产转让中选择“Copy of CapitalCity”请求,然后运行 XML 文件以生成请求和响应,如下所示。

SoapUI 属性转移

以下代码片段以 XML 格式显示了CapitalCity请求副本

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.oorsprong.org/websamples.countryinfo">  
   <soapenv:Header/>  
   <soapenv:Body>  
      <web:CapitalCity>  
         <web:sCountryISOCode>US</web:sCountryISOCode>  
      </web:CapitalCity>  
   </soapenv:Body>  
</soapenv:Envelope>

以下代码片段以 XML 格式显示CapitalCity响应副本

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
   <soap:Body>  
      <m:CapitalCityResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo">  
         <m:CapitalCityResult>Washington</m:CapitalCityResult>  
      </m:CapitalCityResponse>  
   </soap:Body>  
</soap:Envelope>

因此,通过这种方式,我们在 SoapUI 项目中使用了属性传输服务。