微调位图比较

相关项: GUI 测试和组件

运行位图检查点时,UFT One 将应用程序中要检查的区域与检查点中存储的位图逐个像素地进行比较。默认情况下,如果像素数不同,则检查点失败。Bitmap Checkpoint Properties dialog box中的高级设置提供了用于微调位图比较的各种选项:

RGB 容差

注: 仅当比较预期位图与运行时位图时此功能才可用。在运行时位图中查找指定位图时不可用。

RGB(红色、绿色和蓝色)容差是指运行时位图中的像素与预期位图中的像素的 RGB 值相差多少个百分比可以通过检查点。(RGB 容差选项仅限于 24 位色深的位图。)

例如,如果创建检查点和运行测试时分别使用不同的显示驱动程序,则相同位图的位图检查点也可能失败。假设一个显示驱动程序以 RGB (255, 255, 255) 显示白色,另一个驱动程序以 RGB (231, 231, 231) 显示白色。这两个值之间的差异约为 9.4%。将 RGB 容差设置为 10% 后,用这两个中的任何一个驱动程序运行测试时都会通过检查点。

UFT One 在比较预期位图和运行时位图中的每个像素时会应用 RGB 容差设置。每个像素的红色、绿色和蓝色值单独比较。如果任何值之间的差异超过了允许容差的值,则该像素会导致比较失败。

像素容差

注: 仅当比较预期位图与运行时位图时此功能才可用。在运行时位图中查找指定位图时不可用。

像素容差是指运行时位图中的像素与预期位图中的像素相差多少个像素或相差多少百分比可以通过检查点。

例如,假设预期位图有 4000 个像素。如果将像素容差定义为 50,并选择像素单选按钮,则运行时位图与预期位图中的像素数差值不超过 50 时可以通过检查点。如果将像素容差定义为 5,并选择百分比单选按钮,则运行时位图与预期位图中的像素数差值不超过 200(4000 乘以 5%)时可以通过检查点。

图像相似度

注: 仅当在运行时位图中查找指定位图时此功能才可用。比较预期位图与运行时位图时不可用。

图像相似度设置可以使检查点通过,即使在应用程序中找不到确切的位图也是如此。在测试运行期间,UFT One 尝试在应用程序的对象运行时位图中查找指定的位图。如果 UFT One 找到指定位图的准确匹配,则检查点通过。

如果找不到确切的匹配,并且您在配置检查点详细信息的高级设置中的“相似度”选项中指定的值小于 100%,UFT One 将根据相似度级别调整比较。如果可能候选对象的相似度大于或等于所定义的百分比,则检查点通过。

自定义比较器

自定义比较器是您或第三方可以开发以按照更特定的算法在检查点中运行位图比较的 COM 对象。如果使用自定义比较器执行位图检查点,则 UFT One 向该比较器发送两个要比较的位图: 使用检查点创建并另存为预期位图的对象屏幕捕获,和测试运行期间显示在应用程序中的对象屏幕捕获。然后,比较器根据其算法中的规范比较这两个位图。如果使用自定义比较器,则不能使用配置检查点详细信息来指定容差或相似度设置,也不能指定要比较或忽略的对象区域。

如果在 UFT One 计算机上安装并注册了一个或多个自定义比较器,则高级设置对话框(位图检查点对话框) 包括一个“比较器”选项。

比较器选项允许您选择 UFT One 默认比较器或按测试要求执行位图比较的自定义比较器。有关适合创建自定义比较器的情况的示例,请参见位置发生更改的图像的自定义比较器 - 用例场景。有关开发或安装自定义比较器的详细信息,请参见为位图检查点开发自定义比较器

如果选择自定义比较器,则“位图检查点属性高级设置”对话框中的一些选项会不同。

如果同时定义 RGB 容差和像素容差,则先计算 RGB 容差。像素容差则定义 RGB 条件失败后仍可通过检查点的最大像素数。

例如,假设您为有 4000 个像素的位图定义 10% 的 RGB 容差和 5% 的像素容差。为了通过检查点,运行时位图中的每个像素的 RGB 值都必须正好是预期位图的 RGB 值的 10%。如果该条件不符合,则 UFT One 检查失败像素的数量是否小于 200。如果该条件符合,则检查点通过。