SoapUI 属性转移 使用 Groovy 脚本的 SoapUI 操作符 SoapUI 属性转移 有时我们需要从响应消息中获取一些特定的内容或信息,然后将其添加到后续请求中。这些情况需要一些特定的机制来检索值并将其传输到 SoapUI 项目的其他元素。因此,我们需要使用SoapUI 属性转移TestStep。 Adding Property Transfer 要在SoapUI 中使用属性转移,我们必须遵循以下步骤。 步骤 1:单击 Soap 图标创建一个新的 Soap 项目,然后输入初始WSDL URL,如下所示。 http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL 第 2 步:单击 OK 按钮后,它将处理Soap 项目及其相关服务,如下所示。 第三步:右击'CountryInfoServiceSoapBinding 12',打开生成Test Suite,如下图。 步骤 4:当点击 OK 按钮时,它会显示一个对话框来指定测试套件名称,如下所示。 步骤5:点击OK按钮后,它会显示测试套件内的默认测试用例,如下所示。 Creating the Clone for Property Transfer 第 6 步:右键单击CountryInforServiceSoapBinding TestSuite,为 Property 转移创建一个新的测试用例,如下所示。 在这里,我们将测试用例的名称指定为Property Transfer TestCase,然后单击 OK 按钮。 步骤 7:之后,它在CountryInforServiceSoapBinding TestSuite内创建 Property Transfer TestCase并显示 TestCase 窗口,如下所示。 步骤 8:现在,我们传输或克隆两个测试用例请求:CountryISOCode TestCase请求和Property Transfer 测试用例测试步骤中的CapitalCity TestCase请求,如下所示。 克隆CountryISOCode 测试用例:单击CountryISOCode 测试用例的 (+),然后右击 CountryISOCode 请求,如下所示。 单击克隆测试步骤以打开用于定义目标测试用例的“克隆测试步骤窗口”。在这里,我们为财产转让测试用例指定了目标“CountryISOCode 请求”,如下所示。 步骤 9:单击 OK 按钮后,它将CountryISOCode请求传输到 Property Transfer TestCase 并在右侧窗格中显示XML请求,如下所示。 Step 10:同理,我们将CapitalCity TestCase的请求转移到Property Transfer TestCase,如下图。 步骤11:现在,双击属性Transfer test Case 查看可用的测试用例,如下所示。 Add Property transfer Step 12:右击TestStep的CountryISOCode请求,然后选择Property Transfer服务,如下图。 第 13 步:当我们单击Property Transfer 时,它会显示一个弹出对话框,指定属性转移的新步骤的名称。 步骤14:一旦OK按钮被点击,它增加了产权转让的产权转让测试用例,然后显示一个新的产权转让窗口来添加属性,如下图所示。 第 15 步:要添加属性,请单击“属性转移”窗口左上角的 (+) 图标。之后,它会显示一个弹出对话框,指定在属性传输中传输值的名称。输入名称CountryISO并单击确定。 第 16 步:之后,它会在Property Transfer窗口中显示CountryISO值,如下所示。 此处,CountryISO值被添加到 CountryISOCode 以将值传输到CapitalCity请求的副本中。之后,将CountryISOCode属性设置为Response,然后将CapitalCity属性的副本设置为Request,如上所示。 第 17 步:现在,单击请求/响应按钮 (3) 来声明源和目标表达式的命名空间,如下所示。 步骤 18:双击 CountryISOCode 以显示 XML 请求文件,如图所示。 步骤19:指定国家名称为美国后,点击绿色运行按钮执行查询,如下图。 以下代码片段以 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 代码值。 步骤21:双击CapitalCity请求的副本,然后为CapitalCity的目标副本指定请求命名空间,如下所示。 这是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以获取指定国家/地区的首都名称。 步骤23:点击绿色运行按钮,执行财产转移,获取国家ISO代码,如下图。 步骤 24:之后,我们必须双击“Popery Transfer TestCase”来执行所有可用的测试步骤,如下所示。 当我们单击运行按钮时,所有测试步骤都在 Property Transfer TestCase 内执行。 第 25 步:现在,从财产转让中选择“Copy of CapitalCity”请求,然后运行 XML 文件以生成请求和响应,如下所示。 以下代码片段以 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 项目中使用了属性传输服务。 使用 Groovy 脚本的 SoapUI 操作符