本主题涵盖了 Diff 工具,它在 SOAtest 和 Virtualize 中将传入的数据和报告差异与保存的数据进行对比。
本章包含:

了解 Diff

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

Diff 项目配置面板划分为两个主要部分:上一部分包含常规选项。下面部分包含 Regression ControlIgnored DifferencesOptions 选项卡,可以在其中配置选项用于比较文本、二进制、JSON 和 XML 格式的数据。

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

  • 双击测试套件的 Test Case Explorer 节点并修改可用选项,这在 Regression Options中有所描述。

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

二进制 Diff 模式

Diff Mode 下拉菜单中选择 Binary 。查看二进制文件的差异。

回归控制

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

文本 Diff 模式

Diff Mode 下拉菜单中选择 Text ,以访问该模式的以下配置。

回归控制

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

忽略的差异

Text 模式 Diff 工具的 Ignored Differences 选项卡中,可以通过单击 Delete 按钮删除任何已忽略的文本差异。

选项

Text 模式 Diff 工具的 Options 选项卡中有以下选项可用:

XML Diff 模式

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

回归控制

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

文字 XML 回归控制

Literal XML 模式 Diff 工具的 Regression Control 卡中有以下选项可用:

表单 XML 回归控制

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

XML 树将文字 XML 显示为树,每个树节点表示一个元素。Diff 面板中树的选项可以使用与 SOAP 客户机工具的 Form XML SOAP Envelope 选项相同的风格进行配置。  有关更多详情,请查阅 Manipulating the XML View Tree

XML 配置选项卡云溪对 XML 组件进行添加、删除和重命名操作。用于 XML 配置选项卡的选项可以使用与 SOAP 客户机工具的 Form XML SOAP Envelope 选项相同的风格进行配置。有关更多详情,请查阅 Manipulating the XML Configuration Tabs

XML 忽略的差异

XML 模式 Diff 工具的 Ignored Differences 选项卡中,可以通过单击合适按钮对 Xpath 设置进行 AddModify 操作。有关配置已忽略差异的更多详情,请查阅 Understanding XPaths

XML 选项

XML 模式 Diff 工具的 Options 选项卡中有以下选项可用:

使用  ExamXML MDCXML

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

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

使用 VMTools

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

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

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

没有运行 XML Diff,差别太大了。相反地,指定文本模式进行差异比较。

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

切换为文本模式之前执行 XML diff 允许的最大时间为首选项面板的 Misc 选项卡中(Connection Settings> Default timeout)指定的默认超时值,但不超过 120 秒。

JSON Diff 模式选项

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

回归控制

JSON 模式 Diff 工具的 Regression Control 卡中有以下选项可用:

忽略的差异

JSON 模式 Diff 工具的 Ignored Differences 选项卡中,可以通过单击合适按钮对 XPath 设置进行 AddDelete 操作。

了解 XPaths

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

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

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

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

忽略质量任务视图中的 XPath

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

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

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



  2. 选择要忽略的 XPath 操作的合适多选框。可使用以下选项:
  3. 然后单击 OK

    现在将在以后的测试运行中忽略指定的 XPath。此外,指定的 Xpath 现在出现在 Diff 工具中 XML 模式的已忽略的差异(Ignored Differences)选项卡中。若要修改 XPath,请查阅 Modifying XPath Settings

手动输入要忽略的 XPath

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

若要手动输入 XPath:

  1. 则可在 Diff 工具的 TextXMLJSON 模式中选择 Ignored Differences 选项卡。
  2. 单击 Add 按钮。将在已忽略的 XPaths 列表的 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. 右键单击树中的元素节点,然后从快捷菜单选择 Setup Ignored XPaths
  2. 选择要忽略的 XPath 操作的合适多选框。可使用以下选项:
  3. 单击 Ok。选中的元素节点现在以灰色的形式显示在
    选中的元素节点现在以灰色的形式显示在表单 XML 树中。在以后运行修改的回归测试时,指定的所有 Xpath 操作都将被忽略。
    若要重新配置并不再忽略 Xpath 时,那么右键单击 Ignored Xpath 节点并从快捷菜单中选择 Remove Ignored XPath 。然后节点将以黑色显示并不再被忽略。

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

Diff 工具可以有自己的本地、排他的忽略 Xpath 设置,也可以引用其他 Diff 工具可以使用的 Xpath 列表。 若要创建被忽略的 Xpath 的共享列表,请查阅 Global Ignored XPath Properties

修改 Xpath 设置

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

若要修改 Xpath 设置:

  1. 在 Ignored Differences 选项卡中,选择希望修改的 XPath,然后单击 Modify 按钮。将显示一个 Ignored XPaths Settings 对话框。



  2. 选择要忽略的 XPath 操作的合适多选框。可使用以下选项:
  3. 然后单击 OK

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


视频教程

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