截图验证点
要打开 截图验证点 对话框,在 测试结果 视图中右键单击失败的截图验证,然后在上下文菜单中选择查看差异。有关打开对话框的另一种方法,请参阅 设置掩码。
使用对话框中的按钮来放大或缩小截图,或将其恢复到原始大小,显示或隐藏遮罩或突出显示(即显示或隐藏围绕差异的红线),或打开颜色选择器以选择突出显示线条颜色。
单击保存按钮以保存当前截图的设置,或单击取消按钮关闭对话框而不保存任何更改。
差异选项卡显示了预期图像和实际图像之间的差异。此选项卡提供四种不同的查看差异方式,默认为闪烁视图,其中预期和实际图像交替显示(差异以红线突出显示)。可以使用右侧的控制装置设置闪烁速度。
差异选项卡的减法视图通过删除常见像素,仅保留两者图像中不同的像素来显示差异。减法的方式可通过更改HSV(色调、饱和度、亮度)颜色设置和通过选中或取消选中反转复选框来影响。
差异选项卡的灰度差视图通过删除所有常见像素,仅保留两个图像中不同的像素来显示差异。差分的方式可通过更改对比度设置和通过选中或取消选中反转复选框来影响。
差异选项卡的分割视图显示预期图像的左侧和实际图像的右侧,其中在两者之间有一个垂直滑块,可以用来调整显示比例,使一边显得更多,另一边更少。
对话框的遮罩选项卡显示预期图像和实际图像。它还提供了(位于对话框右侧的按钮形式的)遮罩工具,包括添加正遮罩,添加负遮罩,遮罩突出显示的差异和移除遮罩。大多数按钮仅在全局显示/隐藏遮罩切换工具按钮被按下的情况下才启用。
添加正遮罩和添加负遮罩允许您标记预期图像的矩形区域,标记为感兴趣区域或不感兴趣区域(用于验证目的)。
遮罩突出显示的差异只有在实际图像与预期图像存在差异时才有意义。然后,单击此按钮将突出显示并根据这些差异创建遮罩。
对话框的比较模式选项卡用于设置比较模式。默认使用严格模式,它直接进行逐像素比较。如果严格模式太严格,以下还有更宽容的模式。
比较模式
严格比较模式
严格模式是像素逐像素比较,不提供额外的配置选项。
由于各种因素(例如显卡驱动程序和硬件、操作系统、抗锯齿等),像素差异可能会发生,这些差异对人眼来说不明显,这使得“严格”模式有时不适用。
模糊像素比较模式
像素比较模式比较尺寸相同的两幅图像相应像素的颜色。
它以百分比的形式显示图像差异。例如,10%的差异意味着10%的像素不同。
该算法有一个允许失效阈值参数,该参数定义了图像被认为是相等的标准。因此,对于10%不同像素的示例,11%的阈值会认为两个图像是相等的。
最大颜色差异参数在比较具有不同色调(肉眼难以察觉)的图像时很有用。这可能会发生在使用不同显卡的机器上截取的屏幕截图上。屏幕截图看起来非常相似,您希望忽略它们之间微小的颜色差异。
从技术上讲,最大颜色差异是3D(RGB)颜色空间中两种颜色之间的距离(也可参见欧几里得距离)。
例如,你有两个颜色如下所示的像素:(0, 0, 0) 和 (1, 1, 1) - 一个是绝对黑色,另一个是几乎黑色(您无法通过肉眼区分它们的颜色)。这两种颜色之间的差异可以用以下公式计算:
diff = sqrt((r2 - r1)^2 + (g2 - g1)^2 + (b2 - b1)^2)
这里 r,g 和 b 分别是红色、绿色和蓝色的颜色分量值。因此,对于我们的例子,计算方法如下:
diff = sqrt(1 + 1 + 1) = ~1.73
此外,黑色和白色的颜色差异大约是441.67。因此,如果您想比较纯黑色图像和白图像,并将最大颜色差异设置为441.67,则结果将为正,即图像匹配。
在测试结果视图中,您可能会在失败的屏幕截图中发现此附加信息
...(difference: 0.7976%, max. color difference: 80.6040)
“差异:0.7976%”部分表示不同像素的百分比数量。在本例中为0.7976%,而不是79.76%,即相对数量非常小,小于一百分之一。例如,如果您比较10x10像素的图像,并且只有一个像素不同,则您将得到1%的差异。
“最大颜色差异:80.6040”部分表示最大像素颜色差异 - 在这种情况下为80.6040。因此,如果您将最大颜色差异设置为81,则您的测试将通过,因为之前失败的像素将被视为相等。
直方图比较模式
直方图模式基于比较图像颜色直方图。当图像进行了调整大小/缩放或旋转,但其颜色配置文件保持相同或变化不大时,非常有用。
它的工作原理
- 将每个像素每个颜色分量(RGB)的颜色范围(0-255)除以桶(或篮子)的数量,然后根据它们的颜色特征计算落入每个桶的像素数量。
- 将图像中像素的总数除以每个桶中的像素数,得到“标准化值”(这允许比较即使它们具有不同的大小)。将这些相应的值放回对应的桶中。
- 所有对应桶的值相减,并将结果相加。这个值表示图像之间的差异。
此模式允许您配置桶和允许的失败(百分比值)的数量,这表示两个图像之间的最大差异,对于这个差异,它们仍然被认为是“相等”的。
相关比较模式
相关模式基于信号处理领域的原始函数,以统计的“相关”系数衡量两个图像之间的相似度。相似度将以百分比表示,其中0%大致可以被称为“无相似度”,而100%可以被称为“完美相似度”。
比较操作是在将不同尺寸的图像映射到相同比例后基于灰度值进行的。与严格比较模式不同,因此这种模式可能能够应对在不同屏幕分辨率的系统上运行的程序的截图。
使用阈值配置参数来设置期望的最小相关系数,以考虑图像相等。以下提供了两套样本图像,以传达计算的关联值评估。
- 和之间的关联度是99.4614%。请注意右按钮的不同尺寸和缺失的键盘快捷键。
- 和之间的关联度是13.8309%。除了一些中心明亮像素外,截图之间没有太多共同之处。
设置掩码
在比较截图时,可能预期的图像包含了我们验证中不需要的更多信息。我们可以通过创建正掩码或负掩码来掩盖图像的部分区域。在图像比较之前执行掩码操作。正掩码是指掩码外的区域被忽略,而负掩码是指掩码内的区域被忽略。
可以在运行测试(或测试运行之间)之前或当在测试结果视图中没有失败的截图测试时设置截图验证点的掩码,因此没有查看差异上下文菜单项。这是通过在测试套件视图的测试案例资源列表中单击“VPs”选项卡,然后单击(或根据您的设置单击或双击)您想要修改的掩码的图像验证点来完成的。这将显示验证点,以及一个小的编辑验证点按钮。单击此按钮将调用截图验证点对话框。对话框将弹出,仅包含两个选项卡,掩码和比较模式—因为只有一个可用的图像是期望的图像,所以不会出现差异选项卡。可以选中掩码选项卡,以查看如下截图所示的GUI。
从这里,我们可以插入、修改和删除正负掩码。一个正掩码看起来是透明的,但矩形外的区域被标记为红色。一个负掩码看起来是一个蓝色矩形。在同一次验证点中同时使用两种掩码没有意义,除非以某种方式它们重叠。
©2024 Qt公司有限公司。包括在此处的文档贡献的版权属于其各自的所有者。
此处提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。
Qt及其标志是芬兰及其它国家和地区Qt公司的商标。所有其他商标均属于其各自所有者的财产。