1

我想知道业界是否使用基于比较屏幕截图的图像来测试 Web 应用程序,以及这是否是一种好方法。

场景:
- 模型图像是手工拍摄的
- 测试只比较图像的选定部分
- 例如,测试是用 selenium 编写的
- 测试总是有相同的数据要处理
- 测试总是在同一个屏幕上运行(相同的分辨率)
- 测试将在一些步骤后比较图像(例如:如果用户帐户页面在注册后看起来不错 - 我们总是有相同的数据进行测试)

这有一些优点吗?它是测试网络应用程序的“稳定”方法吗?作为(例如)硒测试的最后一步来验证结果是否有用?你怎么看待这件事?

我搜索了该主题,但找不到任何好的资源。

4

1 回答 1

2

有这种测试的解决方案,例如,有 Applitools。

它基于获取基线屏幕截图,然后随后的屏幕截图从原始图像中获取差异。有 4 个不同的比较级别:

  1. 精确 (MatchLevel.EXACT) - 逐像素比较
  2. Strict (MatchLevel.STRICT) - Strict 比较所有内容,包括每个元素的内容(文本)、字体、布局、颜色和位置,但知道忽略人类不可见的渲染更改
  3. 内容 (MatchLevel.CONTENT) - 内容的工作方式与 Strict 类似,只是它忽略了颜色
  4. 布局 (MatchLevel.LAYOUT) - 比较基线和实际图像的布局(即结构)。它忽略了页面之间的内容、颜色和其他样式的变化。

在我看来,一个很大的优势是这种测试可以一次性捕获意外的错误(视觉或其他)(您不需要编写多个断言,只需比较屏幕截图)。您也可以用更少的代码编写脚本。

可能的缺点是:您无法处理动态内容,有时无法截取屏幕截图,并且由于有屏幕截图,因此测试执行(使用 img 文件)可能会更长。

注意:我不参与 Applitools,但他们有一个包含许多教程课程的网站。

于 2019-11-25T15:38:18.623 回答