组件视觉测试:「一种自动化验证方法,捕获隔离UI组件在不同状态下的视觉渲染,然后将这些截图与参考图进行比较,以检测其外观的任何非预期变化。」
Chromatic和Percy。两款视觉测试工具,两种哲学,两种受众。一个诞生于Storybook生态系统,以Storybook为信仰。另一个志在通用,到处集成。两者最终都做同样的事——比较截图——但实现路径截然不同。
如果你搜索了「chromatic vs percy」,很可能是因为你在使用Storybook,在原生方案和通用方案之间犹豫不决。这篇文章将帮助你做出决定,也许还能让你考虑一个两者都没有提供的选项。
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倍增器导致成本上升。
大型测试套件中的云端延迟可能影响反馈速度。
直接对比:6个关键维度
1. 测试范围
Chromatic:通过Storybook测试隔离组件。Percy:完整页面和组件。覆盖面Percy优,组件深度Chromatic优。
2. 采纳难度
如果你已经有Storybook,Chromatic几分钟内即可激活。Percy需要SDK集成。有Storybook选Chromatic,否则选Percy。
3. 检测质量
Chromatic使用为Storybook组件优化的智能比较。Percy使用更容易产生误报的逐像素比较。Chromatic适度优势。
4. 协作工作流
两者都提供审查仪表盘。Chromatic更好地集成设计审查流程。Percy更好地集成开发工作流。取决于你的团队文化。
5. 多浏览器渲染
Percy通过BrowserStack使用真实浏览器。Chromatic默认使用Chrome。Percy明显优势。
6. 总成本
两者都按使用量收费。成本取决于你的实际用量。因量而异——用你的实际数据算一算。
共同盲点:仅限云端且付费
关键点来了: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可以充当本地安全网。
视觉测试太重要了,不应该被预算、技术栈或技能水平所限制。
常见问题
Chromatic能不用Storybook运行吗?
不能。Chromatic专为Storybook设计。Percy或Delta-QA是可以独立于Storybook工作的替代方案。
Percy比Chromatic更适合视觉测试吗?
取决于你的上下文。如果你使用Storybook并优先考虑组件测试,Chromatic提供更优越的体验。如果你需要跨多种浏览器的完整页面测试,Percy更合适。
Chromatic和Percy多少钱?
两者都提供有限的免费层。超出后按使用量计费。在组件或页面数量较多时成本可能迅速上升,尤其是Percy的多浏览器倍增器。
能同时使用Chromatic和Percy吗?
技术上可以。但实际上,由于累积成本和管理复杂性,很少有团队这样做。
Chromatic能检测组件之间的布局缺陷吗?
不能。Chromatic在隔离状态下测试组件。只有当组件在真实页面中组装时才会出现的问题无法被检测到。
有免费的本地替代方案吗?
有。Delta-QA是无代码本地运行的视觉测试工具。免费且无捕获限制,无需开发技能,不会将数据传输到第三方云端。
如何从Chromatic或Percy迁移到Delta-QA?
迁移很简单,因为Delta-QA不依赖你现有的测试。并行开始使用Delta-QA,创建首批视觉参考,评估结果。满意后,减少或停止你的云端工具使用。
延伸阅读
你的视觉测试值得比截图计数器更好的方案。试试本地替代方案。