本主题涵盖了 Diff 工具,它在 SOAtest 和 Virtualize 中将传入的数据和报告差异与保存的数据进行对比。
本章包含:
有了对二进制、文本、XML 和 JSON 的支持,Diff 工具是最佳实践回归测试解决方案的当前主干。Diff 工具将编辑器中的数据与从另一个工具输出中(或从指定的另一个输入中)接收到的数据进行比较,并发现差异时报告失败。
Diff 项目配置面板划分为两个主要部分:上一部分包含常规选项。下面部分包含 Regression Control、 Ignored Differences和 Options 选项卡,可以在其中配置选项用于比较文本、二进制、JSON 和 XML 格式的数据。
若要在测试套件中对所有用于 Diff 回归控制的逻辑和数据源使用进行自定义:
|
和其他工具一样,如果向项目中添加源,则可以为该工具指定数据源。用于 Diff 工具的数据源指定用于提供控制值的数据源。 有关数据源的更多详情,请查阅 使用数据源、变量或来自其他测试的值对测试进行参数化。
从 Diff Mode 下拉菜单中选择 Binary 。查看二进制文件的差异。
此设置确定将什么数据源值、文件或文本用作 "control” 值(用于比较所有后续结果的值)。选择其中一项以下选项:
Editor: 从下拉菜单中选择此选项,并在相关字段中输入用作回归控制的文本内容。
File: 从下拉菜单中选择此选项,并指定用作回归控制的文件。如果要保证该文件路径始终相对于项目文件,则启用 Persist as Relative Path 选项。
Data Source Column: 从下拉菜单中选择此选项,并指定特定数据源列中的值作为回归控制。该选项仅适用于包含数据源的项目。
从 Diff Mode 下拉菜单中选择 Text ,以访问该模式的以下配置。
确定将什么数据源值、文件或文本用作 "control” 值(用于比较所有后续结果的值)。选择其中一项以下选项:
Editor: 从下拉菜单中选择此选项,并在相关字段中输入用作回归控制的文本内容。
File: 从下拉菜单中选择此选项,并指定用作回归控制的文件。如果要保证该文件路径始终相对于项目文件,则启用 Persist as Relative Path 选项。
Data Source Column: 从下拉菜单中选择此选项,并指定特定数据源列中的值作为回归控制。该选项仅适用于包含数据源的项目。
在 Text 模式 Diff 工具的 Ignored Differences 选项卡中,可以通过单击 Delete 按钮删除任何已忽略的文本差异。
在 Text 模式 Diff 工具的 Options 选项卡中有以下选项可用:
Java[a-zA-Z ]+\Q(\E[4-9]+th Edition\Q)\E
从 Diff Mode 下拉菜单中选择 XML 差异器选项,以访问 XML 格式的选项。XML 模式解析 XML 文件,并按元素和属性对它们进行比较。(忽略 “ignorable” 空白字符)。比较结果表现为 XML 文档。如果希望使用该模式,请确保两个输入都是格式良好的 XML 文档,且它们具有相同类型的文档元素。
回归控制
确定将什么数据源值、文件或文本用作 "control” 值(用于比较所有后续结果的值)。回归控制设置包含两个配置 XML 消息的图形表现形式。
文字 XML 回归控制
在 Literal XML 模式 Diff 工具的 Regression Control 卡中有以下选项可用:
Editor: 从下拉菜单中选择此选项,并在相关字段中输入用作回归控制的文本内容。
File: 从下拉菜单中选择此选项,并指定用作回归控制的文件。如果要保证该文件路径始终相对于项目文件,则启用 Persist as Relative Path 选项。
Data Source Column: 从下拉菜单中选择此选项,并指定特定数据源列中的值作为回归控制。该选项仅适用于包含数据源的项目。
将表单 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 模式 Diff 工具的 Ignored Differences 选项卡中,可以通过单击合适按钮对 Xpath 设置进行 Add 和 Modify 操作。有关配置已忽略差异的更多详情,请查阅 Understanding XPaths。
在 XML 模式 Diff 工具的 Options 选项卡中有以下选项可用:
ExamXML 是 A7Soft 独立购买且授权的第三方工具。如果选择 ExamXML MDCXML,请确保指定可执行文件和选项文件的位置。
注意:
该选项文件需要包含以下最小设置(使用不支持以下参数的不同值):
可以通过将预期内容保存到文件中而不是按照 配置回归测试中所描述将其嵌入到 Diff 工具,从而自动创建外部回归控制。
VMTools 内建到产品中。不需要额外的许可证。如果选择 VMTools,那么可以指定以下内容:
Output results as XML: 确定差异输出格式。如果未选择该框,则输出将以表格式进行显示。如果选择了该框,则输出将以 XML 格式进行显示。只有当另一个工具链接到 Diff 工具的消息输出时,才会反映出差异。
在特定条件下,VMTools 将回调基于文本的差异。如果 XML 非常复杂,并且产生了过多的差异,或者需要花费过多的时间来完成,就会发生这种情况。
如果发生这种情况,其中一项以下消息将被打印到控制台视图中,以解释发生了什么。
没有运行 XML Diff,差别太大了。相反地,指定文本模式进行差异比较。
没有运行 XML Diff,没有在 30.0 秒内完成。相反地,指定文本模式进行差异比较。
切换为文本模式之前执行 XML diff 允许的最大时间为首选项面板的 Misc 选项卡中(Connection Settings> Default timeout)指定的默认超时值,但不超过 120 秒。
从 Diff 工具的 Diff Mode 下拉菜单中选择 JSON 后,可以使用回归控制和已忽略差异选项。
JSON 模式 Diff 工具的 Regression Control 卡中有以下选项可用:
Regression Control Source: 确定将什么数据源值、文件或文本用作 "control” 值(用于比较所有后续结果的值)。
Editor: 从下拉菜单中选择此选项,并在相关字段中输入用作回归控制的文本内容。
File: 从下拉菜单中选择此选项,并指定用作回归控制的文件。如果要保证该文件路径始终相对于项目文件,则启用 Persist as Relative Path 选项。
Data Source Column: 从下拉菜单中选择此选项,并指定特定数据源列中的值作为回归控制。该选项仅适用于包含数据源的项目。
在 JSON 模式 Diff 工具的 Ignored Differences 选项卡中,可以通过单击合适按钮对 XPath 设置进行 Add 和 Delete 操作。
当以 XML 模式配置 Diff 工具时,在实际值和预期值之间发现的任何差异都用 XPath 表示。XPaths 表示 XML 元素的位置,指定发生差异的位置、发生的差异类型,以及此差异是因为更改、插入还是因为删除引起的。
可以确定在运行 Diff 工具时忽略哪些 XPath。可以选择是忽略完整路径,还是忽略特定 Xpath 操作,如 Content:
Insert
操作。
对于忽略通常会导致回归测试失败的瞬态值,忽略 Xpaths 是非常有用的。例如,实际输出可能包含一个不断变化的时间戳值。由于该值是不一样的,它将更不可能匹配 Diff 工具中配置的值,该值正好造成测试失败。因此,可以指定忽略此值的 XPath,这样测试就不会失败。
将 Xpaths 设置为忽略有三种不同的方法:
在 Diff 工具中输入要忽略的 XPath 时,最简单方法的就是在质量任务视图中右键单击,而不是手动在 Diff 工具 GUI 中输入 Xpath 位置。回归测试失败后,XPath 位置显示在质量任务视图的树表单中。
回归测试失败后,若要忽略质量任务视图中的 XPath:
也可以将要忽略的 XPath 手动键入或粘贴到 Diff 工具配置面板中。
若要手动输入 XPath:
在以后运行修改的回归测试中,所有添加的 Xpath 将都被忽略。有关修改被忽略的 Xpath 的更多详情,请查阅 Modifying XPath Settings。
通过完成以下内容,也可以直接忽略表单 XML 选项卡中表单 XML 树中的 XPath:
Attribute (Modify/Insert/Delete): 选择要忽略的属性操作。如果选择了该字段,则只会忽略 Xpath 中指定的属性名。若要忽略指定的属性,请在紧靠 Attribute 多选框的字段中输入属性名。如果希望忽略元素 Xpath 位置上的多个属性,请保留属性名为空或使用通配符 * (例如,myAttribute*)。
Diff 工具可以有自己的本地、排他的忽略 Xpath 设置,也可以引用其他 Diff 工具可以使用的 Xpath 列表。 若要创建被忽略的 Xpath 的共享列表,请查阅 Global Ignored XPath Properties。
默认情况下,当向 Ignored Differences 选项卡添加 Xpath 时,该 Xpath 的所有可能操作都将显示在 Settings 列。由于 Xpath 的所有可能操作都是默认指定的,所以在下一次运行回归测试时将忽略所有这些操作。然而,可以通过修改 Xpath 设置指定哪些操作被忽略,而不是让所有操作都忽略。
若要修改 Xpath 设置:
Attribute (Modify/Insert/Delete): 选择要忽略的属性操作。如果选择了该字段,则只会忽略 Xpath 中指定的属性名。若要忽略指定的属性,请在紧靠 Attribute 多选框的字段中输入属性名。如果希望忽略元素 Xpath 位置上的多个属性,请保留属性名为空或使用通配符 * (例如,myAttribute*)。
在以后运行修改的回归测试中,所有指定的 Xpath 操作将都被忽略。
视频教程在此视频中,您将了解如何生成和更新回归控制。 |