SOAPUI中文教程---转移属性

Property Transfer TestSteps用于在TestSteps和它们包含的TestCase,TestSuite和Project之间传递属性。它们在许多情况下非常有用,特别是当涉及包含XML的属性时,例如

  1. 从XML消息中提取值,例如来自SOAP Response的sessionID
  2. 将值写入XML消息,例如保存的sessionID或认证数据
  3. 在属性之间传输复杂的XML内容

1. The Property-Transfer Window

创建或双击现有的Property-Transfer TestStep将打开以下窗口:

左侧的列表显示了此TestStep中配置的传输,添加和管理所需的数量。选择传输时(如上图截图中的“TransferUser”),右侧的区域允许您根据需要进行配置;

  • 顶部的源区域指定源属性和可选的XPath用于传输
  • 目标区域指定目标属性和可选的XPath进行传输
  • 下面的区域将不同的配置选项设置在传输级别上。

底部的传输日志显示窗口打开时的最新执行传输及其实际传输的值。

可用的配置选项可以改变传输的内容,并将其各自的定义为:

  • Fail transfer on error - 尝试执行转移时发生任何错误时,转移步骤将失败
  • Transfer text content - 只会传送文字内容。不会保留结构元素
  • Transfer to all - 匹配的值将被转移到所有的目标位置,以防多个匹配
  • Entitize transferred values - 这些值将具有某些字符,例如&符号(“&”)替换为相应的字符实体值(“&”)
  • Set null on missing source - 如果源资源丢失,目标将设置为null。这意味着如果目标已经有一个值,它将丢失
  • Ignore empty/missing values - 这意味着如果源的匹配值为空或丢失,则它将被忽略,并且目标值保持不变
  • Use XQuery - 当尝试提取源值时SoapUI将假定源是XQuery而不是默认的XPath
  • Transfer child nodes - SoapUI不会尝试从匹配的源节点进行任何文本提取,而是选择匹配节点的子节点,从而保留子树XML结构

2. 转移执行

When the PropertyTransfer TestStep is executed during a TestCase run, each transfer in the Property Transfer is performed by selecting the property specified by the transfers source step, property and optional XPath expression and copying their value(s) to the destination steps specified property using an optional XPath expression. If XPath expressions are specified, soapUI will try to replace the target node with the source node if they are of the same type. If not (for example when assigning text() to an @attribute), soapUI will do its best to copy the value as possible.

Source and target XPath expressions must both point to existing nodes in their respective properties, the source property obviously requires the node so it can be selected, the target property requires the node so it can be found and overwritten.

If any of the transfers fail due to missing matches of any of the XPath expression, an error is printed and the step will either fail or go on, depending on of the "fail on error" option has been selected for that transfer. TestCase execution is only aborted if the TestCases‘ "Fail on error" option has been set as described for under TestCase Options.

3. An example: transferring a session ID from a response to a following request

当在TestCase运行期间执行PropertyTransfer TestStep时,通过选择传输源步骤,属性和可选XPath表达式指定的属性来执行属性传输中的每次传输,并使用以下命令将其值复制到目标步骤指定的属性可选的XPath表达式。如果指定了XPath表达式,如果它们的类型相同,soapUI将尝试用源节点替换目标节点。如果不同(例如,将text()分配给@attribute),soapUI将尽可能复制该值。

  1. 添加并执行登录请求到一个空的TestCase,所以你需要有一个有效的响应来处理;
  2. 请求后创建Property-Transfer TestStep,并向其中添加属性传输;
  3. 将源属性配置为“Response”,然后在源属性工具栏右侧选择“向导”按钮。这将打开一个方便的向导,用于选择要传输的所需源节点(在标准soapUI中,您将必须手动创建生成的XPath语句)。
  4. 选择节点,然后按OK; soapUI为您生成相应的XPath语句;

现在,所有的源都设置完成,您的下一步是配置属性转移的目标,即应写入的位置。我们有两个选择;

  1. 将其写入可以由需要使用sessionID的所有后续测试步骤引用的临时属性。如果我们要在几个地方使用sessionID或者TestSteps,这是最好的解决方案
  2. 将其直接传输到应该使用该值的目标TestStep。如果您只想在一个地方使用该值,这将更容易

3.1. 写入临时属性

让我们将属性保存到我们用“SessionID”命名的TestCase属性中;

现在当执行时,SessionID被转移到指定的TestCase属性,并且可以稍后在通过标准属性扩展(或另一个属性转移)的任何请求中使用,例如在我们可以使用的注销请求中

<logout>
<sessionID>${#TestCase#SessionID}</sessionID>
</logout>

当请求发送时,将使用已保存的SessionID。

3.2. 直接写入所需的目标TestStep

将目标设置为注销请求,并再次使用XPath向导(或XPath技能)创建目标XPath语句;

现在执行此操作时,源目标值将从响应中直接提取并写入请求消息。

时间: 2024-12-22 14:05:39

SOAPUI中文教程---转移属性的相关文章

SOAPUI中文教程---脚本和脚本库

SoapUI为脚本编写提供了广泛的选择,使用Groovy或Javascript(由SoupUI 3.0开发)作为脚本语言,使用哪些选项可在左下方的项目详细信息选项卡中设置项目级别. 这里提供的大部分文档将适用于Groovy语言,因为它可以大大简化Java API的脚本(您可以在Groovy网站上获取更多信息,教程等). 本文档将进一步介绍如何使用JavaScript的概述. 脚本可以在了SoapUI以下地方使用: Groovy Script TestStep 运行测试之前和之后运行一个TestC

SOAPUI中文教程---soapUI的模块对象

所有的东西都是ModelItems 在soapUI的所有与项目相关的物件(项目,请求,测试套件等)是ModelItems,其接口在com.eviware.soapui.model包和子包都定义(例如com.eviware.soapui.model.iface封装接口/操作/请求相关的类). modelItems的名称,描述,图标等等都可以通过相应的访问,例如 log.info project.name 将打印项目变量的名称. ModelItem的一般模型有如下(XX =子类型): int get

SOAPUI中文教程---生成测试报告

soapUI有高度的定制可能性; soapUI Pro中可打印的报告基于非常灵活的JasperReports报告引擎. 这些报告是从JasperReports生成的特定的基于XML的模板,可以在项目和全局层面进行定制,从而使您在创建的所有报告中都能轻松获得通用的外观和感觉. 在soapUI中创建可打印报告很容易; 只需从Report对话框中的 Report Type 下拉列表中选择相应的报告,则所选报告将自动编译并按配置生成. Quick tip: 要充分了解soapUI Pro中的报告基础架构

soapui中文教程---DataSink TestStep

The Data Sink是用来从测试中解析值,并将其存储在外部文件.这可以让你集中soapUI中测试中的不同部分的数据,并将它们输出到Excel文件,CSV,数据库等, Getting Started 我们将测试案例已经配置了一个DataSource循环.现在你可以添加一个DataSink step在例子中. 有很多种方法来创建一个DataSink测试步骤,您可以点击TestCase的概述页面上的DataSink图标图标.在导航窗口中的TestCase您也可以单击鼠标右键,单击添加步骤,然后选

soapui中文教程---DataGen TestStep

1. DataGen TestStep The DataGen TestStep可以用于生成要用作在输入TestCases的数据,例如数字或日期序列,随机选择等.所产生的数据可作为属性用,也可以像任何其他属性做属性转移和扩展. 通过创建一个空的TestCase并添加DataGen Step将其启动,你会看到下面的编辑器: 顶部的表将包含其公共设置所定义的DataGen属性,并且在表中选择一个显示在底部的相应配置面板的属性. 让我们通过创建一个属性开始;选择将打开下面的"添加..."对话

SOAPUI中文教程---数据驱动测试

在你想测试存储在文本或XML文件的一些测试实例包含不同的请求.做使用类型为"目录"的数据源驱动的测试数据. The step-by-step guide: 1. Create DataSource 由于数据驱动测试指南中,有从公开可用的CurrencyConverter WSDL(http://www.webservicex.com/CurrencyConvertor.asmx?wsdl)创建SoapUI项目,再加入一个TestSuite和一个TestCase,并打开其编辑器: 现在加

SOAPUI中文教程---基于表单的身份验证

Web表单身份验证 某些Web服务需要基于表单的认证.为了能够使用API调用,您通常需要启动浏览器,在Web表单登录,然后建立会话session. Example: 这要求进行身份验证凭据的表单可能看起来像这样的形式 <form method="post" action="/login"> Username: <input type="text" name="username" required> Pa

struts2官方 中文教程 系列十一:使用XML进行表单验证

在本教程中,我们将讨论如何使用Struts 2的XML验证方法来验证表单字段中用户的输入.在前面的教程中,我们讨论了在Action类中使用validate方法验证用户的输入.使用单独的XML验证文件让您可以内置到Struts 2框架的验证器. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列十一:使用XML进行表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6938720.html 下载本章节代码 为了使用户能够编辑存储在Person对

struts2官方 中文教程 系列九:Debugging Struts

介绍 在Struts 2 web应用程序的开发过程中,您可能希望查看由Struts 2框架管理的信息.本教程将介绍两种工具,您可以使用它们来查看.一个工具是Struts 2的配置插件,另一个是调试拦截器.本文还讨论了如何设置日志级别以查看更多或更少的日志消息. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列九:Debugging Struts 即 http://www.cnblogs.com/linghaoxinpian/p/6916619.html 下载本章节代码 Configu