使用图像比较测试网络应用程序是一种好方法吗?
Is testing web app with images comparision a good approach?
我想知道业界是否使用基于比较屏幕截图图像来测试 Web 应用程序,这是否是一种好方法。
场景:
- 模型图片为手工拍摄
- 测试仅比较图像的选定部分
- 例如,测试是用硒编写的
- 测试始终使用相同的数据
- 测试总是 运行 在同一个屏幕上(相同的分辨率)
- 测试将在一些步骤后比较图像(例如:如果用户帐户页面在注册后看起来不错 - 我们总是有相同的数据进行测试)
这有什么好处吗?
它是测试网络应用程序的 'stable' 方法吗?
它可以作为(例如)硒测试的最后一步来验证结果吗?
你怎么看?
我搜索了该主题,但找不到任何好的资源。
这种测试是有解决方案的,比如有Applitools
它基于拍摄基线屏幕截图,然后后续屏幕截图与原始图像进行比较。有4个不同的比较级别:
- 精确 (MatchLevel.EXACT) - 像素到像素比较
- 严格 (MatchLevel.STRICT) - 严格比较所有内容,包括每个元素的内容(文本)、字体、布局、颜色和位置,但知道忽略人类不可见的渲染更改
- 内容 (MatchLevel.CONTENT) - 内容与 Strict 的工作方式类似,除了它会忽略颜色
- Layout (MatchLevel.LAYOUT) - 比较基线和实际图像的布局(即结构)。它忽略页面之间的内容、颜色和其他样式变化。
一个很大的优势,在我看来,这种测试可以捕获意外 错误(视觉或其他方式)并一次性(您不需要编写多个断言,您只需比较屏幕截图)。您也可以使用更少的代码编写脚本。
可能的缺点是:您无法处理动态内容,有时无法截屏,并且由于有截屏,测试执行(使用 img 文件)可能会更长。
注意:我没有参与 Applitools,但他们有一个网站有很多 tutorial courses。
我想知道业界是否使用基于比较屏幕截图图像来测试 Web 应用程序,这是否是一种好方法。
场景:
- 模型图片为手工拍摄
- 测试仅比较图像的选定部分
- 例如,测试是用硒编写的
- 测试始终使用相同的数据
- 测试总是 运行 在同一个屏幕上(相同的分辨率)
- 测试将在一些步骤后比较图像(例如:如果用户帐户页面在注册后看起来不错 - 我们总是有相同的数据进行测试)
这有什么好处吗? 它是测试网络应用程序的 'stable' 方法吗? 它可以作为(例如)硒测试的最后一步来验证结果吗? 你怎么看?
我搜索了该主题,但找不到任何好的资源。
这种测试是有解决方案的,比如有Applitools
它基于拍摄基线屏幕截图,然后后续屏幕截图与原始图像进行比较。有4个不同的比较级别:
- 精确 (MatchLevel.EXACT) - 像素到像素比较
- 严格 (MatchLevel.STRICT) - 严格比较所有内容,包括每个元素的内容(文本)、字体、布局、颜色和位置,但知道忽略人类不可见的渲染更改
- 内容 (MatchLevel.CONTENT) - 内容与 Strict 的工作方式类似,除了它会忽略颜色
- Layout (MatchLevel.LAYOUT) - 比较基线和实际图像的布局(即结构)。它忽略页面之间的内容、颜色和其他样式变化。
一个很大的优势,在我看来,这种测试可以捕获意外 错误(视觉或其他方式)并一次性(您不需要编写多个断言,您只需比较屏幕截图)。您也可以使用更少的代码编写脚本。
可能的缺点是:您无法处理动态内容,有时无法截屏,并且由于有截屏,测试执行(使用 img 文件)可能会更长。
注意:我没有参与 Applitools,但他们有一个网站有很多 tutorial courses。