本主题介绍如何在 SOAtest 和 Virtualize 中配置并应用 XML 数据库。此工具提取 XML 值(比如,从请求或响应消息中),以便在其他地方使用。数据还可以发送到可写数据源并在扩展工具中访问,或者可以发送到变量,以便在测试套件(针对 SOAtest)或响应器套件或操作套件(针对 Virtualize)之间方便地重用。
章节目录:
XML 数据库工具允许提取某些 XML 值(比如,从请求或响应消息中),以便在其他地方使用。XML 数据库工具可以链接到任何其他输出 XML 的工具。它可以提取 XML 中的任何信息,并使这些信息可供以后使用。
例如,可以配置测试银行 Web 服务交易的测试套件。该测试套件的测试 1 可以使用用户 ID 登录到服务中,然后 SOAP 响应将向测试 1 返回一个会话 ID。可以将该测试套件的测试 2 配置为使用测试 1 的会话 ID,以执行交易。可以在测试套件中配置任何测试,以使用 SOAP 响应参数作为 SOAP 请求参数。
用户通常在对工具(如 SOAP 客户端或消息传送客户端)中的值进行参数化时,通过访问“使用数据源向导”以配置 XML 数据库。这将提供一个快速、直观和自动化的方法来从一个工具中提取数据并在另一个工具中使用它。只需转到要插入提取数据的工具,然后使用向导指定要提取什么数据(比如,该数据来自什么工具)。这是将在后续测试教程中使用的存储结果中演示的使用模型。同样的方法也可用于提取用于设置变量的数据。作为一种选择,可以手动配置 XML 数据库工具来从一个工具中提取数据,然后手动配置其他工具来使用提取到的值。
视频教程在本视频中,您将了解到如何从 XML 响应中提取值,并在其他测试中重复使用它们。 |
若要使用“使用数据源向导”来配置一个 XML 数据库:
确保有一个包含至少两个工具的操作集或测试套件。
选择要从其提取值的工具。面板顶部的下拉菜单将包含正在配置的当前工具之前发生的测试或响应器套件中的所有工具。例如,如果正在配置工具 4,则工具 1,2 和 3 将在此菜单中显示,以及任何可用的数据源。
也可以手动将 XML 数据库工具链接到响应器、操作或测试套件内的工具。若要配置 XML 数据库作为链接工具,请完成以下内容:
确保有一个包含至少两个工具的操作集或测试套件。
右键点击与要提取的数据相关联的工具节点,然后选择添加输出。
在添加输出向导中,指示要从哪里提取值(比如,SOAP Envelope),然后点击完成按钮。将在工具下方显示 XML 数据库节点。
使用可用控件指定表示要提取什么值的 XPath。若要添加一个 XPath,请从预期消息列表中选择一个值,然后点击提取元素按钮。添加的值将显示在所选元素列表,该列表有一个列名为数据源,其中包含值所来自的工具的名称和提取到的值。
左侧面板显示了用于创建模板的预期 XML 响应,您可以从中选择元素。如果此工具接收一个有效的 XML 消息(比如,该消息来自通讯报文或者由附加的客户端工具所定义),则此面板将自动被填充。或者,可以将示例消息复制到纯文本或树状选项卡中。注意,默认情况下不会保存预期 XML;如果要对它进行保存,请启用保存预期的 XML 选项。 |
如果希望进一步配置 Xpath 或自定义钙元素的提取设置,则点击修改,然后根据需求修改。详情请参阅Options for Each Extracted Element。
添加和/或修改提取物之后,配置要使用提取值的工具。
将值设置为“参数化”,并从下拉菜单中选择合适项。例如,如将值保存到“title” 数据源列,则将按如下方式选择它。
可以在配置 XML 数据库时配置以下选项:
以下选项可以通过修改 XML 数据库配置面板右侧面板中列出的选择项进行设置。
XPath 选项
[1]
更改为 [2]
。编辑 XPath 文本之后,点击验证按钮来验证 Xpath 格式,然后点击 OK。XPath/Parent
将输出 <parent>VALUE</parent>
。可以配置索引来进行提取,如果元素出现多次,则由哪个控件控制提取哪个元素。XPath/Parent
将输出 VALUE
。可以配置文本内容,提取所选元素的文本内容,或者配置全部子节点,提取所选定元素的所有子节点。数据源列选项
自定义列名:指定存储值的数据源列名。除非指定了其他位置(比如,如果选择可写数据源列或变量),否则值存储在内部数据源中。这是您将在其他地方引用该值时使用的名称。例如,如果该值存储在名为 My Value 的数据源列中,则应选择 My Value 作为参数化值。也可以引用其作为字面量视图或多响应视图中的 ${My Value}
。
可写数据源列:将值存储到可写数据源列中 (详情请参阅配置可编写数据源)。这样就可以在单列中存储一系列值。然后,其他工具即可遍历存储的值。
写入所有匹配的列:将值保存到所有名称中包含给定字符串的列中。从消息中提取多个值时,这些值将被写入匹配的所有列中的一行,每个值放入不同的列中。如果提取的值多于匹配列的数量,由于匹配列的数量少于值的数量,有些值将不会被写入。相反,如果选择一个可写数据源列(上面的选项),那么值将跨多行写入列。
变量:启用此选项,将值保存在特定值中,以便它可以在当前响应器、操作或测试套件中重复使用。变量必须已经被添加到当前套件中,如 在 SOAtest 中定义变量。 以这种方式设置的任何值都将覆盖响应器、操作或测试套件属性面板中指定的任何局部变量值。
以下选项可以在 XML 数据库工具配置面板的较低部分进行设置。
可以配置控制台视图(窗口> 显示视图> 控制台),显示测试执行期间使用的数据库变量。详情请参阅对变量使用进行监控。
可以参数化 Xpath 以引用响应器套件或测试变量、环境变量和数据源值。引用变量的语法为 ${myVariableName}。引用 XML 数据库值和数据源值的语法为:${myColumnName}.
例如,如果 ${XPath Key}
是数据源列名,则可以使用
/*[local-name(.)="bookstore" and namespace-uri(.)=""]/*[local-name(.)="book"
和
namespace-uri(.)=""][child::node()[local-name(.)="title" and text()="${XPath Key}"]]
默认情况下,将不会提取空的和缺失的元素。 这可能会影响可写数据源中使用的 XML 响应的完整性。
例如,假设您有以下 XML:
<?xml version="1.0" encoding="UTF-8"?> <root> <e>5</e> <e/> <e>6</e> </root> |
还假设您希望为所有‘e’元素创建提取物。 为此,选择第一个元素,然后点击提取元素。
接下来,选择新的提取物,然后点击修改。
在修改对话框汇总,更改 Xpath 以从 /root/e[1]/text()
提取到 /root/e/text()
.
这将提取所有三个文本节点。
接下来,点击数据源列并选择可写数据源列。在执行数据库时,可写数据源将只包含两行,因为第二个元素缺少文本:
ROW 1 = 5
ROW 2 = 6
如果希望编写空值,则将 Xpath 从 /root/e/text()
更改为 /root/e
,并确保启用了仅内容。
通过这种方式,就可以提取所有三个元素,包括它们的内容。可以选择性启用提取空元素为选项,将提取值更改为空值。现在,数据库将附加空值到可写数据源:
ROW 1 = 5
ROW 2 =
ROW 3 = 6
以下教程演示如何使用这个工具: