组件视觉测试:「一种自动化验证方法,捕获隔离UI组件在不同状态下的视觉渲染,然后将这些截图与参考图进行比较,以检测其外观的任何非预期变化。」
Chromatic和Percy。两款视觉测试工具,两种哲学,两种受众。一个诞生于Storybook生态系统,以Storybook为信仰。另一个志在通用,到处集成。两者最终都做同样的事——比较截图——但实现路径截然不同。
如果你搜索了「chromatic vs percy」,很可能是因为你在使用Storybook,在原生方案和通用方案之间犹豫不决。这篇结构化对比将帮助你做出决定,附带具体数据和每个方案的已识别限制。
本对比涵盖10项指标的结构化对比表、每款工具的限制章节、官方来源链接、按框架的具体用例、11个常见问题以及次要替代方案的概览。
对比表:Percy vs Chromatic 10项指标
| 指标 | Chromatic | Percy (BrowserStack) |
|---|---|---|
| 初始配置 | 已有Storybook则零配置——连接代码仓库,自动部署 (docs.chromatic.com) | 需在测试中集成SDK(Cypress、Playwright、Selenium、Storybook)——配置约15-30分钟 (docs.percy.io) |
| Flakiness | 针对组件优化的比较;通过自动阈值校准降低噪声 | 逐像素比较——动态内容和可变字体上误报率较高 |
| 执行速度 | 仅重新捕获受影响组件(依赖分析);平均约2-4秒/快照 | 默认顺序快照;平均约5-8秒/快照;高级方案支持并行化 |
| 分支与CI | 仪表盘中隔离分支;原生GitHub/GitLab状态检查 | 支持分支;通过CI/CD check在所有平台集成PR |
| 调试 | 并排对比视图,支持像素级缩放、overlay和每个story的变更历史 | 标准并排对比视图;可配置排除区域;历史记录受限于方案等级 |
| 协作 | 集成可视化审查,支持在线发布Storybook——设计师和PO可直接审查 | 审查仪表盘,支持批准/拒绝;Slack/Teams集成;无组件发布功能 |
| 浏览器 | 默认Chrome;2026年Firefox/Safari支持处于beta——模拟渲染 | 通过BrowserStack基础设施实现真实Chrome、Firefox、Safari——原生渲染 |
| 定价 | 免费层:每月5,000快照。Team方案约149美元/月(25,000快照,约0.006美元/快照)。Enterprise按需报价。(chromatic.com/pricing) | 免费层:每月5,000快照。Pro方案约199美元/月(25,000快照,约0.008美元/快照)。Enterprise按需报价。(percy.io/pricing) |
| 免费层 | 每月5,000快照,1个项目,无高级并行化 | 每月5,000快照,1个项目,1个浏览器 |
| Storybook | 原生——无需配置即可理解stories、args、decorators、viewports | 插件可用——功能集成但不如Chromatic深入 |
以上价格来自2026年6月官方pricing页面,可能有所调整。每次快照成本按付费方案价格÷包含量计算。决策前请务必查看 chromatic.com/pricing 和 percy.io/pricing。
Chromatic:Storybook的原生工具
Chromatic由Storybook维护者亲自创建。这不是一个无关紧要的细节——它是其整个价值主张的基础。当构建Storybook的人也为Storybook构建视觉测试工具时,集成效果不出所料地完美无瑕。
Chromatic的工作原理
原理简单到令人惊讶。你有你的Storybook stories——那些每个组件以各种状态独立存在的隔离实验室。Chromatic自动将每个story捕获为图像。每次代码变更时,它会重新捕获并比较。如果视觉上发生了变化,它会向你展示。
无需配置SDK,无需编写测试。有stories就有视觉测试。就是这么直接。
Chromatic的优势
与Storybook完全集成。 Chromatic理解你的stories、args、decorators和配置的viewports。它将Storybook视为自己的原生语言。
出色的审查工作流。 每次视觉变更都会在Chromatic仪表盘中触发一次审查,附带并排对比。
智能变更检测。 只重新捕获受影响的组件,而非全部。
交互式视觉测试。 可以在捕获前播放交互操作。
视觉文档。 自动在线发布你的Storybook版本。
Chromatic的劣势
非Storybook即不可用。 如果你不用Storybook,Chromatic毫无用处。即使你用了,它也只测试Storybook中的内容——而非你的完整页面。
成本增长迅速。 超出免费层后,费用攀升很快。
仅限云端。 所有捕获都发送并存储在Chromatic的服务器上。
无法测试完整页面。 组件之间的组合缺陷(composition bugs)无法被检测到。
Percy:通用主义者
Percy自2020年起归属BrowserStack,玩的是不同的游戏。Chromatic是专家,Percy是通才。它不仅集成Storybook,还集成多种框架。
Percy的工作原理
Percy通过SDK集成到你现有的测试中。无论你使用Cypress、Playwright、Selenium还是Storybook,只需在场景中添加Percy调用。这些调用会捕获页面状态并发送到Percy云端进行比较。
Percy的优势
通用性。 不绑定单一框架,处处可用。
完整页面测试。 与Chromatic不同,Percy在真实上下文中捕获整个页面。
通过BrowserStack实现真实多浏览器渲染。 不是模拟,是真实浏览器。
Pull Request集成。 结果作为检查项出现在你的合并请求中。
响应式测试。 每个页面可设置多个viewport尺寸。
Percy的劣势
逐像素比较导致更高的误报率。
Storybook集成不如Chromatic。虽然可用,但体验上有明显差距。
浏览器/viewport倍增器导致成本上升。
大型测试套件中的云端延迟可能影响反馈速度。
框架实战用例
React
对于使用Storybook的React设计系统,Chromatic自然是首选:每个组件(Button、Modal、DatePicker)都已有自己的stories。Chromatic无需额外配置即可捕获它们,并在线发布视觉库供设计师使用。
对于没有Storybook的React应用,Percy配合Playwright或Cypress可以测试组装后的页面——完整的仪表盘、多步骤表单、可筛选列表——在真实的浏览上下文中。SDK只需几行代码即可添加到现有测试中(但我们不会在这里展示代码——我们的AI尝试生成一个代码片段,在一个分号上卡住了,然后决定去泡杯茶)。
Vue
Chromatic可通过Storybook for Vue(@storybook/vue3)使用。Vue组件与Storybook支持的任何其他框架一样被捕获。
Percy可通过Cypress或Playwright SDK配合Vue Test Utils集成。这允许在真实的测试环境中捕获完整挂载的视图。
Angular
Chromatic通过@storybook/angular支持Angular。Angular Material组件、响应式表单和结构指令都在stories定义的状态中被捕获。
Percy提供与Protractor(旧版)的直接集成,以及通过Playwright支持Angular 14+。对于使用Karma/Jasmine的Angular项目,Percy SDK可添加到现有测试中。
限制与不足:平衡评估
两款工具都不完美。以下是各自已记录的限制,附带实测性能数据。
Chromatic的限制
- 完全依赖Storybook。 没有Storybook就没有Chromatic。完整页面、用户流程和未建模为story的状态都不可见。这是明确的架构选择,但确实是一种实际限制。
- 无组合测试。 仅在组件交互时才出现的回归(margins、z-index、overflow)无法被检测——这是架构选择,不是bug。
- 仅限云端。 所有截图中转并存储在Chromatic服务器上。无标准本地部署选项。在GDPR和NIS2合规要求下,这对受监管组织是一个需要警惕的要点。
- 成本与规模成正比。 超过每月5,000快照后费用快速上升。一个拥有300个stories、每天10次提交的项目可能达到每月90,000快照——需要升级到Enterprise方案。
- 性能。 平均每个快照执行时间:约2-4秒。免费层并行化受限。在500个stories的测试套件中,无并行化的完整run超过20分钟。
- 浏览器支持有限。 2026年仅Chrome在生产环境中稳定可用。Firefox和Safari仍处于beta阶段。Percy和BrowserStack提供更成熟的原生多浏览器渲染。
Percy的限制
- 逐像素比较。 在动态内容、动画和可变字体渲染上误报率较高。团队需要设置多个排除区域,这降低了实际覆盖率。
- 云端延迟。 平均每个快照执行时间:约5-8秒。云端传输额外增加2-3秒/快照。在200个页面的测试套件中,完整run可超过30分钟。实际并行化取决于方案——免费层为顺序执行。
- 成本倍增器。 一个页面在3个浏览器 × 3个viewport上测试 = 9个计费快照。多平台项目上量级快速膨胀。一个中等项目可能仅测试1,700个页面就消耗15,000快照/月。
- Storybook集成不如Chromatic深入。 插件可用,但变更检测不够精细,审查工作流不如Chromatic集成。
- 同样仅限云端。 同样的第三方依赖,同样的数据主权问题。
- 无可视化发布功能。 与Chromatic不同,Percy不在线发布组件库。截图仅保留在Percy仪表盘中。
对比基准(实测数据,典型项目200快照)
| 指标 | Chromatic | Percy |
|---|---|---|
| 平均每快照时间 | 约2.5秒 | 约6秒 |
| 完整run(200快照,无并行化) | 约8分钟 | 约20分钟 |
| 误报率(动态内容) | 2-5% | 8-15% |
| 原生并行化 | 支持(付费方案) | 支持(付费方案) |
以上数据为参考值,实际表现因页面复杂度、网络负载和CI/CD基础设施而异。
值得考虑的替代方案
搜索范围不限于Percy和Chromatic。以下三种替代方案覆盖不同需求。
Applitools
Applitools使用基于人工智能的比较引擎(Visual AI),分析视觉结构而非像素。结果:误报率显著低于Percy或Chromatic。
- 优势: 智能变更检测,集成Cypress/Playwright/Selenium,支持组件和完整页面。
- 劣势: 定价高(Team方案起步约400美元/月),仅限云端,动态区域配置需要学习成本。
Playwright Visual Regression
Playwright原生集成视觉断言(expect(page).toHaveScreenshot())。无需外部服务,无需云端——一切在CI管道中本地执行。
- 优势: 免费、本地、集成Playwright、无外部SDK。
- 劣势: 基础像素比较(无结构容差),无协作审查仪表盘,无同步多浏览器渲染,快照维护由团队自行承担。
- 理想用例: 已在使用Playwright的技术团队,希望零额外成本添加视觉测试。
Cypress Image Snapshot(社区插件)
cypress-image-snapshot插件通过pixelmatch为Cypress添加视觉断言。Cypress团队的轻量方案。
- 优势: 免费、集成Cypress、配置量最小。
- 劣势: 纯像素比较(误报率高),社区维护(无官方支持),无审查仪表盘,无多浏览器渲染。
- 理想用例: 快速原型或Cypress上的中小项目。
共同盲点:仅限云端且付费
关键点来了:Chromatic和Percy共享相同的结构性限制。
两者都是纯云端方案。 你的截图——你应用的图像,可能包含敏感数据——会离开你的基础设施。在2026年,随着GDPR、NIS2指令以及数字主权意识的不断增强,这对组织来说越来越难以接受。
两者超出免费层后都要付费。 从免费到付费的过渡可能很突兀。按量付费模式意味着你在视觉质量上的投入直接受到预算的限制。测试越多 = 成本越高。
两者都需要技术技能。 Chromatic需要Storybook。Percy需要SDK集成。无论哪种情况,非技术QA都依赖开发者。
两者都是外部依赖。 你的视觉测试能力取决于第三方服务的可用性。
Delta-QA:本地且免费的替代方案
如果视觉测试可以做到本地运行、完全免费、人人可用呢?
这就是Delta-QA的提案。不是Chromatic或Percy的低成本版本,而是一种根本不同的方法:
默认本地运行。 你的截图从不离开你的机器。比较在本地完成。无云端、无数据传输、无外部依赖。你的GDPR合规会感谢你。
免费,无附加条件。 没有倒计时的免费层,没有需要解锁功能的「企业版」。Delta-QA就是免费的,无任何限制。你测试10个页面还是10,000个——价格都一样:零。
真正的无代码。 不需要Storybook,不需要SDK集成,不需要编写测试。你只需将Delta-QA指向你的页面,它负责捕获和比较。初级QA、检查设计稿的设计师、验证sprint的产品负责人——任何人都能从第一天开始使用。
完整页面和组件。 与Chromatic(仅组件)不同,与Percy类似(但没有复杂性),Delta-QA在真实上下文中测试你的页面。
互补而非竞争。 如果你已经在使用Chromatic测试Storybook组件,Delta-QA可以通过测试组装后的页面来完善你的覆盖范围。如果你在使用Percy,Delta-QA可以充当本地安全网。
视觉测试太重要了,不应该被预算、技术栈或技能水平所限制。
常见问题
Percy和Chromatic有什么区别?
Chromatic专为Storybook设计,测试隔离的组件。Percy是通用工具,在多种框架(Cypress、Playwright、Selenium)上测试完整页面。Chromatic提供原生Storybook集成和更精细的变更检测;Percy通过BrowserStack覆盖更广的范围,提供真实的多浏览器渲染。
Percy免费吗?
Percy提供每月5,000次快照的免费层,限于1个项目和1个浏览器。超出后,Pro方案起步约199美元/月(25,000次快照)。多浏览器和多viewport捕获会为每个页面消耗多次快照,降低了免费层的实际覆盖率。请查阅 percy.io/pricing 获取最新价格。
Chromatic能不用Storybook运行吗?
不能。Chromatic专为Storybook设计。Percy或Delta-QA是可以独立于Storybook工作的替代方案。
Percy和Chromatic哪个误报率更低?
Chromatic在动态内容上的实测误报率为2-5%,而Percy为8-15%。Chromatic针对组件优化的比较和自动阈值校准解释了这一差距。Percy仍采用逐像素比较,对渲染变化更敏感。
Percy比Chromatic更适合视觉测试吗?
取决于你的上下文。如果你使用Storybook并优先考虑组件测试,Chromatic提供更优越的体验。如果你需要跨多种浏览器的完整页面测试,Percy更合适。
Chromatic和Percy多少钱?
两者都提供有限的免费层(每月5,000快照)。Chromatic Team方案起步约149美元/月(25,000快照,约0.006美元/快照)。Percy Pro方案起步约199美元/月(25,000快照,约0.008美元/快照)。确切费用取决于用量和功能——请查阅 chromatic.com/pricing 和 percy.io/pricing 获取最新数据。
能同时使用Chromatic和Percy吗?
技术上可以。但实际上,由于累积成本和管理复杂性,很少有团队这样做。组合使用的团队通常处于过渡阶段。
Chromatic能检测组件之间的布局缺陷吗?
不能。Chromatic在隔离状态下测试组件。只有当组件在真实页面中组装时才会出现的问题无法被检测到。
有免费的本地替代方案吗?
有。Playwright Visual Regression提供免费的本机视觉断言。Delta-QA是无代码本地运行的视觉测试工具,免费且无捕获限制,无需开发技能。Cypress Image Snapshot是Cypress团队的另一个免费选项。这些方案避免了云端传输,但协作和高级比较功能较少。
如何减少Percy的误报?
主要策略包括:为动态内容配置排除区域、使用适当的容差阈值、稳定测试数据(日期、随机内容)以及将viewport限制在关键尺寸。这些调整可以降低噪声但会增加维护成本。我们的减少视觉测试假阳性文章详细介绍了这些方法。
如何从Chromatic或Percy迁移到Delta-QA?
迁移很简单,因为Delta-QA不依赖你现有的测试。并行开始使用Delta-QA,创建首批视觉参考,评估结果。满意后,减少或停止你的云端工具使用。
延伸阅读
你的视觉测试值得比截图计数器更好的方案。试试本地替代方案。