本主题介绍比较工具,它在 SOAtest 和 Virtualize 中将传入的数据和报告差异与保存的数据进行对比。
章节目录:

了解比较工具

比较工具支持二进制、文本、XML 和 JSON,是当前最佳实践回归测试解决方案的支柱。比较工具将编辑器中的数据与从另一个工具输出中(或从指定的另一个输入中)接收到的数据进行比较,并在发现差异时报告失败。

比较项目配置面板划分为两个主要部分。上半部分包含常规选项。下半部分包含回归控制忽略区别选项选项卡,可以在其中配置选项用于比较文本、二进制、JSON 和 XML 格式的数据。

若要在测试套件中对所有用于比较回归控制的逻辑和数据源使用进行自定义:

  • 双击测试套件的测试用例浏览器节点并修改可用选项,这在回归选项中有所描述。

和其他工具一样,如果向项目中添加源,则可以为该工具指定数据源。用于比较工具的数据源指定用于提供控制值的数据源。 有关数据源的更多详情,请参阅使用数据源、变量或来自其他测试的值对测试进行参数化

二进制比较模式

比较模式下拉菜单中选择二进制。查看二进制文件的差异。

回归控制

此设置确定将什么数据源值、文件或文本用作“control”值(用于比较所有后续结果的值)。选择其中一项以下选项。

文本比较模式

比较模式下拉菜单中选择文本,以访问该模式的以下配置选项。

回归控制

确定将什么数据源值、文件或文本用作“control”值(用于比较所有后续结果的值)。从以下选项中选择一项。

忽略区别

在比较工具文本模式的忽略区别选项卡中,可以通过点击删除按钮删除任何已忽略的文本差异

选项

文本模式的比较工具选项选项卡中提供以下选项。

XML 比较模式

比较模式下拉菜单中选择 XML 比较选项,以访问 XML 格式的选项。XML 模式解析 XML 文件,并按元素和属性对它们进行比较。(忽略 “ignorable” 空白字符)。比较结果表现为 XML 文档。如果希望使用该模式,请确保两个输入都是格式良好的 XML 文档,且它们具有相同类型的文档元素。 

回归控制

确定将什么数据源值、文件或文本用作“control”值(用于比较所有后续结果的值)。回归控制设置包含两个配置 XML 消息的图形表现形式。

字面量 XML 回归控制

在比较工具的回归控制选项卡中,XML 字面量模式有以下选项可用。

表单 XML 回归控制

将表单 XML 选择作为回归控制模式时,回归控制选项卡中的选项被划分为 XML 视图树和 XML 配置选项卡。

XML 树将字面量 XML 显示为树,每个树节点表示一个元素。比较面板中树的选项可以使用与 SOAP 客户端工具的表单 XML SOAP Envelope 选项相同的风格进行配置。  更多信息,请参阅操作 XML 视图树

在 XML 配置选项卡中可对 XML 组件进行添加、删除和重命名操作。用于 XML 配置选项卡的选项可以使用与 SOAP 客户端工具的表单 XML SOAP 消息封套选项相同的风格进行配置。更多信息,请参阅操作 XML 配置选项卡

XML 忽略区别

XML 模式下比较工具的忽略区别选项卡中,可以通过点击相应按钮对 Xpath 设置进行添加修改操作。有关配置忽略区别的更多信息,请参阅Understanding XPaths

XML 选项

XML 模式下比较工具的选项选项卡中有以下选项可用。

使用  ExamXML MDCXML

ExamXML 是 A7Soft 独立购买且授权的第三方工具。如果选择 ExamXML MDCXML,请确保指定可执行文件和选项文件的位置。
注意:

可以通过将预期内容保存到文件中自动创建外部回归控制,而不是按照配置回归测试中的描述将其嵌入到比较工具。

使用 VMTools

 产品中包含了 VMTools。不需要额外的许可证。如果选择 VMTools,那么可以指定以下内容:

在特定条件下,VMTools 将回调基于文本的差异。如果 XML 非常复杂,并且产生了过多的差异,或者需要花费过多的时间来完成,就会发生这种情况。

如果发生这种情况,其中一项以下消息将被打印到控制台视图中,以解释发生了什么。

未运行 XML 比较,差异过多。相反地,指定文本模式进行差异比较。

没有运行 XML 比较,没有在 30.0 秒内完成。相反地,指定文本模式进行差异比较。

切换为文本模式之前执行 XML 比较允许的最大时间为首选项面板的 Misc 选项卡中(连接设置> 默认的超时)指定的默认超时值,但不超过 120 秒。

JSON 比较模式选项

从比较工具的比较模式下拉菜单中选择 JSON 后,可以使用回归控制和已忽略差异选项。

回归控制

JSON 模式下比较工具的回归控制卡中有以下选项可用。

忽略区别

JSON 模式下比较工具的忽略区别选项卡中,可以通过点击相应按钮对 XPath 设置进行添加删除操作。

了解 XPath

当以 XML 模式配置比较工具时,在实际值和预期值之间发现的任何差异都用 XPath 表示。XPath 表示 XML 元素的位置,指定发生差异的位置、发生的差异类型,以及此差异是因为更改、插入还是因为删除引起的。

可以确定在运行比较工具时忽略哪些 XPath。可以选择是忽略完整路径,还是忽略特定 Xpath 操作,如 Content: Insert 操作。

对于忽略通常会导致回归测试失败的瞬态值,忽略 Xpath 非常有用。例如,实际输出可能包含一个不断变化的时间戳值。由于该值是不一样的,它将更不可能匹配比较工具中配置的值,该值正好造成测试失败。因此,可以指定忽略此值的 XPath,这样测试就不会失败。

将 Xpath 设置为忽略有三种不同的方法:

忽略质量任务视图中的 XPath

在比较工具中输入要忽略的 XPath 时,最简单方法的就是在质量任务视图中右键点击,而不是手动在比较工具 GUI 中输入 Xpath 位置。回归测试失败后,XPath 位置显示在质量任务视图的树表单中:

回归测试失败后,若要忽略质量任务视图中的 XPath:

  1. 右键点击该错误,然后从快捷菜单中选择忽略 XPath。将显示一个忽略的 XPath 设置对话框,并自动输入所选的 XPath。



  2. 选择要忽略的 XPath 操作的相应复选框。可选择以下选项:
  3. 然后点击 OK

    现在将在以后的测试运行中忽略指定的 XPath。此外,指定的 Xpath 现在出现在比较工具中 XML 模式的忽略区别选项卡中。若要修改 XPath,请参阅Modifying XPath Settings

手动输入要忽略的 XPath

也可以将要忽略的 XPath 手动键入或粘贴到比较工具配置面板中。

若要手动输入 XPath:

  1. 则可在比较工具的文本XMLJSON 模式中选择忽略区别选项卡。
  2. 点击添加按钮。将在已忽略的 XPath 列表的 XPath 列中显示一个空字段。默认,Settings 列填充指定的所有 XPath 操作,它意味着您添加的整个 Xpath 将被忽略。若要指定要忽略的单个 XPath 操作,请参阅Ignoring XPaths from the Form XML Tree
  3. 要么在空的 XPath 字段中输入 XPath 位置。
  4. 若要添加额外的 Xpath,请重复步骤 1 到步骤 3。
  5. 点击 OK 按钮。

在以后运行修改的回归测试中,所有添加的 Xpath 将都被忽略。有关修改被忽略的 Xpath 的信息,请参阅Modifying XPath Settings

忽略表单 XML 树中的 XPath

通过完成以下内容,也可以直接忽略表单 XML 选项卡中表单 XML 树中的 XPath:

  1. 右键点击树中的元素节点,然后从快捷菜单选择设置忽略的 XPath
  2. 选择要忽略的 XPath 操作的相应复选框。可选择以下选项:
  3. 点击 OK
    选中的元素节点在表单 XML 树中显示为灰色。在以后运行修改的回归测试时,指定的所有 Xpath 操作都将被忽略。
    若要重新配置并不再忽略 Xpath 时,那么右键点击忽略的 Xpath 节点并从快捷菜单中选择删除忽略的 XPath。然后节点将以黑色显示并不再被忽略。

创建被忽略的 Xpath 的共享列表

比较工具可以有自己的本地、排他的忽略 Xpath 设置,也可以引用其他比较工具可以使用的 Xpath 列表。 若要创建被忽略的 Xpath 的共享列表,请参阅全局忽略 Xpath 属性

修改 Xpath 设置

默认情况下,当向忽略区别选项卡添加 Xpath 时,该 Xpath 的所有可能操作都将显示在设置列。由于 Xpath 的所有可能操作都是默认指定的,所以在下一次运行回归测试时将忽略所有这些操作。然而,可以通过修改 Xpath 设置指定忽略哪些操作,而不是忽略所有操作。

若要修改 Xpath 设置:

  1. 在忽略设置选项卡中,选择想要修改的 XPath,然后点击修改按钮。将显示一个忽略的 Xpath 设置对话框。



  2. 选择要忽略的 XPath 操作的相应复选框。可选择以下选项:
  3. 然后点击 OK

在以后运行修改的回归测试中,所有指定的 Xpath 操作将都被忽略。


视频教程

在此视频中,您将了解如何生成和更新回归控制。