Testing 使用图像比较测试web应用程序是一种好方法吗?

Testing 使用图像比较测试web应用程序是一种好方法吗?,testing,web-applications,automated-tests,applitools,Testing,Web Applications,Automated Tests,Applitools,我想知道基于比较屏幕截图图像的web应用程序是否在业界使用,这是否是一种好方法 场景: -模型图像是手动拍摄的 -测试仅比较图像的选定部分 -例如,测试是用硒编写的 -测试总是有相同的数据要处理 -测试始终在同一屏幕上运行(相同分辨率) -测试将在一些步骤后比较图像(例如:如果用户帐户页面在注册后看起来很好-我们总是有相同的测试数据) 这有什么好处吗? 它是测试web应用程序的“稳定”方法吗? 作为(例如)硒测试的最后一步来验证结果是否有用? 你觉得怎么样 我搜索了该主题,但找不到任何好的资源。

我想知道基于比较屏幕截图图像的web应用程序是否在业界使用,这是否是一种好方法

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

这有什么好处吗? 它是测试web应用程序的“稳定”方法吗? 作为(例如)硒测试的最后一步来验证结果是否有用? 你觉得怎么样


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

有针对此类测试的解决方案,例如,有Applitools

它基于拍摄基线截图,然后后续截图从原始图像中拍摄差异。有4个不同的比较级别:

  • 精确(MatchLevel.Exact)-像素对像素比较
  • Strict(MatchLevel.Strict)-Strict比较所有内容,包括内容(文本)、字体、布局、颜色和每个元素的位置,但知道忽略人类看不到的渲染更改
  • 内容(MatchLevel.Content)-内容的工作方式与Strict类似,只是它忽略了颜色
  • 布局(MatchLevel.Layout)-比较基线图像和实际图像的布局(即结构)。它会忽略页面之间的内容、颜色和其他样式更改
  • 在我看来,的一大优势是,这种测试可以捕获意外的bug(可视的或其他的),而且一次就可以(您不需要编写多个断言,只需比较屏幕截图)。您也可以用更少的代码编写脚本

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


    注意:我不参与Applitools,但他们有一个包含很多内容的网站。

    我首先想一想你的目标是什么。如果您的最高优先级是始终呈现参考的像素完美(在某个边距内)表示,那么这是非常有用的。但这也取决于你的开发有多“敏捷”;如果详细信息不断变化,而你只是忙于更新你的参考资料,这可能没有多大用处。谢谢你的回答。说实话,我正在寻找一个项目,为我自己写,我只是觉得这可以是有趣和有用的同时。我想知道这是否是在测试过程中某个时候在行业中使用的东西。谢谢