我的编程空间,编程开发者的网络收藏夹
学习永远不晚

自动化视觉回归测试的四种方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

自动化视觉回归测试的四种方法

在我们开始之前,让我们快速回答一些问题:

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

视觉回归测试是比较两个不同版本之间应用程序 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似乎表明大多数人都得出了相同的结论:

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 缺陷并确保为您的网站或应用程序提供高质量的用户体验至关重要。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

自动化视觉回归测试的四种方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

自动化视觉回归测试的四种方法

视觉回归测试是比较两个不同版本之间应用程序 UI 视觉外观的过程,以确保没有意外的视觉变化。该过程涉及截取各种 UI 元素的屏幕截图,并将它们与之前捕获的屏幕截图进行比较,以确定视觉外观的任何变化。

2022年的九个测试自动化预测:自动化视觉测试

查看2022年自动化视觉测试变化的预测,包括速度和覆盖率的改进以及测试构建策略的必要变化。

自动化回归测试全接触:概念、方法和实践

在本文中,我们将从回归测试的概念入手,讨论其实施的重要性,以及那些实现自动化测试的方法与优秀实践。

GitLab的自动测试和自动化测试报告生成方法

GitLab的自动测试和自动化测试报告生成方法,需要具体代码示例随着软件开发项目的不断增加,测试变得越来越重要,而自动化测试成为了一种必不可少的手段。GitLab作为一个流行的代码托管平台,提供了许多工具和功能来支持自动测试和自动化测试报告
2023-10-22

API 测试自动化的方法和原因

API是无处不在的,而且在大多数情况下,即使我们每天使用它们多次,也不会过多地考虑它们。每当您使用谷歌或Facebook账户登录网站,直接从餐馆的网站上在谷歌地图上查看新餐馆的位置,或者使用PayPal账户支付购买时,您都能看到API的运作

Android自动化测试的方法是什么

本篇内容介绍了“Android自动化测试的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!自动化测试自动化测试指软件测试的自动化,在
2023-06-05

PHP中封装性的自动化测试方法

摘要:自动化测试是一个重要的软件开发实践,它可以提高测试的效率和准确性。在PHP开发中,封装性是实现自动化测试的关键。本文将介绍一些PHP中封装性的自动化测试方法,并给出具体的代码示例。测试框架的选择在PHP开发中,有许多流行的测试框架可供
2023-10-21

Go 函数单元测试的自动化方法

在 go 中,可以通过以下方法自动化单元测试:使用 go test 命令,提供灵活的测试运行和管理选项。集成第三方测试框架,获得额外的功能和灵活性。利用持续集成工具,在每次代码更改时自动运行测试。Go 函数单元测试的自动化方法在 Go 中
Go 函数单元测试的自动化方法
2024-05-03

自动化测试:盘点Selenium页面元素定位的8种方法

前段时间因项目需要,学习Selenium进行自动测试。现在总结整理下Selenium中元素定位的方法,希望可以帮助一些有疑问的朋友。自动化测试步骤 :定位元素→操作元素→验证操作结果→记录测试结果在自动化测试过程中,测试程序通常的操作页面元
2023-06-05

golang自动化运维测试的方法有哪些

Rate limit reached for gpt-3.5-turbo in organization org-68Lqb4iD2GUhNJWqRdyhiGwp on requests per day. Limit: 200 / day.
2023-10-18

Python 接口自动化测试中的十个魔法方法

在Python中,魔法方法(也称为特殊方法)是一些特殊命名的方法,它们允许你定制类的行为。虽然这些方法不直接应用于接口自动化测试,但它们可以用来增强测试框架的功能。

使企业数字自动化战略成熟的四种方法

了解自动化成熟度将帮助CIO确定自动化增长的机会,以及评估更大、更复杂的自动化所带来的风险和挑战。

开源 | AREX:携程新一代自动化回归测试工具的设计与实现

AREX经过不断优化,逐步达到了用真实流量和数据进行回归测试的目标,降低了成本,提高了质量,达到了建设初期设定的目标。
开源技术2024-11-30

聊聊敏捷/ Scrum方法论的自动化测试框架

在过去几年中,自从敏捷方法开始使用以来,它的创始人一直在大声疾呼,并且愿意摆脱传统瀑布模型单调和繁琐的现实以来,当谈到自动化测试时,也可以感受到同样的影响。

Android 自动化测试经验分享 UiObejct.getFromParent()的使用方法

1. UiObejct.getFromParent()的用法:从这个名字就知道,就是从当前对象的父对象中查找想要的子对象,该子对象和当前对象应该是同一层级。如上图所示:Max inactivity before lock是已知条件,4 mi
2022-06-06

单目三维检测实时泛化,纯视觉自动驾驶鲁棒感知方法入选ECCV 2024

该论文所设计的方法能够有效地提高模型的泛化性能,从而提升单目三维检测在自动驾驶中的落地和应用。

Linux环境中用Python脚本实现自动化测试的方法

Linux环境中用Python脚本实现自动化测试的方法随着软件开发的迅猛发展,自动化测试在保证软件质量和提高开发效率方面起着至关重要的作用。而Python作为一种简单易用的编程语言,具有很强的可移植性和开发效率,被广泛应用于自动化测试中。本
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录