• 0
  • 0
分享
  • 自动化视觉回归测试的四种方法——软件测试圈
  • 小丸子🍡 2024-08-30 17:04:26 字数 3973 阅读 294 收藏 0

  视觉回归测试是什么意思?

  视觉回归测试是比较两个不同版本之间应用程序 UI 视觉外观的过程,以确保没有意外的视觉变化。该过程涉及截取各种 UI 元素的屏幕截图,并将它们与之前捕获的屏幕截图进行比较,以确定视觉外观的任何变化。视觉回归测试有助于确保应用程序的 UI 在不同的设备、浏览器和操作系统中保持一致和视觉吸引力。

  你为什么要自动化它?

  自动化视觉回归测试有助于在开发周期的早期识别 UI 问题,这可以节省大量时间和金钱,否则这些时间和金钱可能会花在以后修复问题上。想一想修复 Q/A、UAT 或生产中遇到的 UI 怪癖所花费的时间(以及金钱)。你为什么不自动捕捉那些视觉错误?

  手动目视检查怎么样?

  尽管您可以执行手动目视检查,但不建议仅依赖它们,因为与使用自动化套件相比,它会花费更多时间。发现 UI 中的差异可能具有挑战性,即使对于细微的视觉错误也是如此。请看下面的例子——你能找出这 8 个不同之处吗?大概。但这比自动化套件花费的时间要长得多。

  自动视觉回归测试捕获了多少百分比的视觉错误?

  来自各种来源(BrowserStack、AppliTools 等)的研究表明,自动化视觉回归测试可以捕获大多数视觉错误,成功率在 95% 到 99% 之间,具体取决于应用程序的复杂性和所使用的测试过程。

  在本文中,我们将探索 4 个流行的自动化视觉回归测试库:Chromatic、Percy、Jest Image Snapshot和BackstopJS。

  Chromatic

  Chromatic是专门为Storybook设计的视觉回归测试工具。Chromatic 提供了一个云平台,允许用户测试和管理项目的 UI 组件,确保所做的任何更改都不会导致意外的视觉变化。

  谁使用 Chromatic?

  Adobe、Auth0、CircleCI、GOV.UK、BBC 等。

  彩色的优点

  ·轻松集成:专为 Storybook 构建(由 Storybook 的维护者!),可以无缝地为您的组件库或设计系统进行设置。

  · 团队协作:Chromatic 为团队协作提供了一个平台,允许您与团队成员共享测试结果、发表评论并讨论任何问题。

  · 构建分析:Chromatic 提供详细的构建分析,向您展示进行了哪些更改、进行更改的人员以及它们如何影响您的 UI 组件。

  彩色的缺点

  · 有限的自定义选项:虽然 Chromatic 的 UI 旨在易于使用,但它可能无法提供与其他视觉回归测试工具一样多的灵活性或自定义。

  · 定价:Chromatic 提供了一个免费的计划,合作者和故事书不受限制。但是,其免费套餐每月有 5,000 个快照的限制,因此如果您认为自己会达到该限制,则值得考虑第一层($149/月)是否对您的团队来说负担得起。可以在此处找到更多定价信息。

  · 没有本地测试选项:Chromatic 目前不提供在将视觉变化部署到服务器之前在本地机器上测试视觉变化的方法,这对某些团队来说可能是一个限制。

  Percy

  Percy是一个一体化的视觉审阅平台,提供广泛的功能和集成。它被BrowserStack收购,后者是应用程序和浏览器测试领域的行业领导者。Percy 帮助开发人员捕捉视觉回归、简化审查流程并允许团队轻松协作和跟踪更改。

  谁使用Percy?

  谷歌、Sentry、Shopify、Fastly、Basecamp 等。

  Percy的优点

  · 多才多艺和灵活:Percy 可用于在广泛的应用程序中进行视觉回归测试,而不仅仅是 Storybook。Percy 具有高级功能,例如跨浏览器测试、与流行测试框架的集成,以及允许对测试过程进行更广泛的自定义和控制的强大 API。

  · 可扩展性:Percy 的扩展性非常好,即使是最大的项目也可以轻松管理可视化回归测试。

  · 协作:Percy 提供了广泛的协作工具,包括评论和共享功能,允许开发人员一起工作以快速识别和解决问题。

  Percy的缺点

  · 有限的定制:一些用户可能会发现 Percy 的开箱即用设置和功能不能满足他们特定的测试需求,因为定制选项有限。

  · 对外部服务的依赖:由于 Percy 是一个基于云的工具,开发人员将需要依赖外部服务提供商来托管和维护平台,这可能会引入额外的依赖关系和潜在的故障点。

  · 定价:Percy 提供了一个免费计划,其中包含无限的合作者和故事书。但是,它的免费套餐每月有 5,000 个快照的限制,因此如果您认为自己会达到该限制,则值得考虑您的团队是否可以负担得起第一层。可以在此处找到更多定价信息。

  为 Storybook 选择哪种云解决方案?

  在我看来,如果我已经在使用/计划将它用于其他视觉回归测试(例如在 Cypress E2E 测试套件中),我会选择 Percy,以便将您的视觉回归测试整合到一个平台中。另一方面,如果我只需要为 Storybook 执行视觉回归测试,我会选择 Chromatic。Chromatic 由其维护者专门为其 Storybook 设计,使其更具兼容性和面向未来。由于 Chromatic 专门针对 Storybook 进行了优化,因此它可以更好地与平台集成并提供更简化的工作流程。

  @percy/storybookvs.的 NPM 趋势chromatic似乎表明大多数人都得出了相同的结论:

1.jpg

  Jest Image Snapshot

  Jest Image Snapshot是为 Jest 构建的视觉回归测试工具。它允许开发人员拍摄渲染组件或元素的快照,并将它们与之前存储的图像进行比较,以检查是否存在任何视觉差异或变化。它通过渲染组件或元素并使用无头浏览器生成渲染输出的图像来工作。然后使用像素到像素比较将生成的图像与先前存储的图像进行比较,如果发现任何差异,Jest 将报告测试失败。

  谁使用 Jest Image Snapshot?

  美国运通等

  Jest Image Snapshot的优点

  · 易于使用:Jest Image Snapshot 易于设置和使用,适合各种经验水平的开发人员使用。它与流行的测试框架 Jest 无缝集成,无需额外配置。

  · Independent : Jest Image Snapshot 可以在本地使用,无需外部服务,对于喜欢在本地测试和调试应用程序的开发人员来说,这是一个更方便、更具成本效益的解决方案。

  · 定价:这是一个开源项目,并且 100% 免费。

  Jest Image Snapshot 的缺点

  · 性能开销:本地视觉回归测试可能会占用大量资源,运行测试会减慢开发过程,尤其是对于大型项目。

  · 对 Jest 的依赖:顾名思义,Jest Image Snapshot 与 Jest 测试框架紧密集成,这可能不适合使用其他测试框架的团队。

  · 有限的配置选项:虽然 Jest Image Snapshot 易于设置和使用,但它提供的配置选项不如其他视觉回归测试工具那么多。这对于在测试中需要更大灵活性的团队来说可能会受到限制。

  BackstopJS

  BackstopJS是一种用于 Web 应用程序的开源视觉回归测试工具,可自动将 Web 应用程序当前状态的屏幕截图与其先前版本进行比较,以识别任何视觉变化。它使用无头浏览器自动化来模拟用户交互并捕获网页的屏幕截图。BackstopJS 可以配置为跨多个视口测试多个页面和响应式设计。它还支持用户身份验证,可以与各种 CI/CD 管道集成。BackstopJS 使用配置文件来定义要测试的 URL、视口和其他设置。

  BackstopJS 的优点

  · 配置灵活:BackstopJS可配置性强,适用于测试不同类型、视觉需求多样的应用。它允许您定义自定义场景、设置不同的环境并调整参数以达到所需的测试水平。

  · 强大的比较:BackstopJS 提供了一个强大的图像比较引擎,即使是最小的视觉差异也能检测出来。它使用逐像素比较和阈值来确定更改是否足够重要以被视为失败。

  · 定价:这是一个开源项目,并且 100% 免费。

  BackstopJS 的缺点

  · 复杂性:与其他视觉回归工具相比,BackstopJS 需要更多配置和设置,这可能使其实施起来更加复杂。

  · 较慢的测试:由于 BackstopJS 生成和比较屏幕截图的方式,与其他视觉回归工具相比,它的运行速度可能更慢。

  · 有限的支持:虽然 BackstopJS 有可用的文档和社区支持,但它可能不如其他拥有更大用户群和更成熟的支持网络(例如 Percy)的工具那么强大。

  总之,每种工具都具有独特的功能和优点,以及潜在的缺点。选择哪个用于视觉回归测试取决于各种因素,例如项目要求、团队偏好和可用资源。在选择每种工具时都需要权衡取舍,决定取决于哪些因素对您的项目最重要。

  在我看来,Percy提供了最全面和用户友好的解决方案,使其成为寻求高级工具的团队的绝佳选择。Chromatic 是只需要测试 Storybook 库的团队的合适选择,而BackstopJS更适合寻求更全面测试功能的团队。Jest Image Snapshot 对于使用 Jest 从事较小项目的开发人员来说是一个不错的选择。

  最终,将自动化视觉回归测试纳入您的开发过程对于及早发现 UI 缺陷并确保为您的网站或应用程序提供高质量的用户体验至关重要。


作者:科技狠活与软件技术    

来源:http://www.51testing.com/html/26/n-7795526.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   Character.ai是一家让用户设计自己的人工智能角色的开发商,其移动应用程序的使用率正在赶超ChatGPT。根据市场情报公司 Similarweb 最近的一项分析,由 a16z 支持的 Character.ai 的 iOS 和 Android 应用程序目前在美国的月活跃用户数为 420 万,而 ChatGPT 移动应用程序在美国的月活跃用户数接近 600 万。  这是继2023年5月Character.ai发布之后的又一次显著增长,当时这家初创公司分享说,它在第一周的安装量就突破了170万。当然,安装量并不等同于用户,更不等同于活跃用户。事实上,根据移动营销公司 Appsflyer ...
            0 0 892
            分享
          • 现在很多人,等不及。现在很多人,不想等。外面的广告更加夸张,我要的现在就要。真是chedan。搞什么假惺惺不懂都要付出时间。把时间这个变量狠狠地抛诸脑后,定会受到时间狠狠地鞭打,让你好好停下来,等等时间。等,本来就是行动计划的一部分。心里没数,就等不及;心里没底,就等不起;肚里没货,就等不了;胸中没有战略,就等不下。急,不是因为真的急,而是不知道该干嘛。一切尽在咫尺,不是所有的事情都尽在掌握。《孙子兵法》说先计算,看看自己有多少胜算的把握,算出来可胜,行啦,这个时候再动;算出来,把握不大,不要动,等到时机成熟的时候,再动;等到能动的时候再动。不到亮剑的时候,就摩拳擦掌,就“磨刀霍霍向猪羊”,也...
            1 1 900
            分享
          •   宝马摩托宣布,将于 7 月 30 日(明日)在四川邛崃的 BMW 摩托车骑行公园举办 BMW R 1300 GS 独览新天地产品上市发布活动。此前这款新品已经开启预售,预售价区间 22.8 万-26.8 万元。  预售信息显示,宝马 R 1300 GS 摩托车采用更简化的车身结构,带来比以往更加流畅的造型,整车减重 12KG,配备颠覆 GS 家族设计的全新矩阵头灯。  动力方面,宝马 R 1300 GS 摩托车配备“有史以来最强的 1300cc 拳击手发动机”,动力提升至 107kW,扭矩 149Nm。  宝马 R 1300 GS 辅助驾驶系统全面升级,支持 ACC 主动定速巡航系统,时刻...
            0 0 365
            分享
          •   EA 和 PopCap Studios 的《植物大战僵尸 3》公布了首个游戏预告片,并确定本作将于今年年内面向全球发布。  《植物大战僵尸 3》是一款由宝开游戏(PopCap Studios)开发的手机游戏,支持 iOS 和安卓平台,采用免费 + 内购方式,目前已在英国、荷兰、澳大利亚和菲律宾开启抢先体验。  本作采用分集式叙事方式,在初代游戏玩法的基础上融入了新的故事情节和解谜冒险元素,之前游戏中的许多植物都会回归,并且还会带来一些新植物。  查询发现,《植物大战僵尸》发布于 2009 年 5 月 5 日,后续又在 2013 年推出了其续作,后来又推出了多部衍生作,而本作则是继 2019...
            0 0 817
            分享
          • 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如jmeter、postman、soapui等等就比较麻烦。我比较偏重脚本化执行测试用例,所以选择了groovy作为主要语言来进行接口测试,但是脚本依赖的库还是基于之前所在的java为主的测试框架,有兴趣的可以翻翻以前的文章。项目的架构思路是以模块为基础把接口分类,然后对于接口的请求单独进行实现。通过一个user作为一个用户,携带各种属性,如:uname,pwd,token,userinfobean等信息。来作为各个模块类之间的信息传递。回到修改密码接口,简单说一下我们接口的...
            1 0 2341
            分享
      • 51testing软件测试圈微信