




























数据截至 2025 年 Q1 | 基于官方文档 + npm trends + 社区实测数据
本次收录 8 款当前主流 UI 自动化测试产品,覆盖开源框架、商业平台、AI 驱动工具三个品类:
| # | 产品 | 类型 | 维护方 | 最新版本 |
|---|---|---|---|---|
| 1 | Playwright | 开源框架 | Microsoft | v1.44+ |
| 2 | Cypress | 开源框架 + 商业云 | Cypress.io | v13+ |
| 3 | Selenium WebDriver | 开源框架 | W3C / SeleniumHQ | v4.x |
| 4 | WebdriverIO | 开源框架 | OpenJS Foundation | v9 (2024) |
| 5 | Robot Framework | 开源框架 | RF Foundation | v7.x |
| 6 | Katalon Studio | 商业平台(Freemium) | Katalon Inc. | 2025.x |
| 7 | Testim(Tricentis) | 商业 AI 平台 | Tricentis | SaaS |
| 8 | Puppeteer | 开源工具库 | v22+ |
| 产品 | 周下载量 | GitHub Stars | 趋势(近 1 年) |
|---|---|---|---|
| Playwright | ~3800 万 | ~84K | ↑ 强劲增长 |
| Cypress | ~740 万 | ~49.6K | → 平稳 |
| selenium-webdriver(JS 包) | ~210 万 | — | ↓ 缓慢下滑 |
| WebdriverIO | ~160 万 | ~9K | → 平稳 |
| Puppeteer | ~230 万 | ~89K | ↓ 被 Playwright 蚕食 |
| Robot Framework(PyPI) | ~230 万/月 | ~10K | → 平稳 |
结论:Playwright 在过去 2 年已超越 Cypress 成为下载量第一的现代 E2E 框架,且增速仍在加快。Selenium 作为企业存量基础仍保持较大绝对用量,但新项目采用率持续下降。
| 产品 | 通信协议 | 架构特点 |
|---|---|---|
| Playwright | CDP / WebKit 私有协议 | WebSocket 长连接,直接操控浏览器引擎,无中间层 |
| Cypress | 运行在浏览器内部 | 与 App 同进程,直接 DOM 访问,但增加 5–7s 启动开销 |
| Selenium 4+ | W3C WebDriver + BiDi(新) | HTTP 请求 → Driver 中间层 → 浏览器,延迟最高 |
| WebdriverIO v9 | WebDriver BiDi(升级) | v9 起默认启用 BiDi,性能大幅提升,趋近 Playwright |
| Robot Framework | 依赖 SeleniumLibrary(WebDriver) | 在 Selenium 之上封装,协议层与 Selenium 相同 |
| Puppeteer | CDP(Chrome 专用) | 仅支持 Chromium,CDP 直连,快但单浏览器 |
| 产品 | Chrome | Firefox | Safari/WebKit | Edge | 移动真机 |
|---|---|---|---|---|---|
| Playwright | ✅ | ✅ | ✅(内置 WebKit) | ✅ | 模拟(非真机) |
| Cypress | ✅ | ✅ | ⚠️(实验性) | ✅ | 模拟 |
| Selenium | ✅ | ✅ | ✅(SafariDriver) | ✅ | ✅(配合 Appium) |
| WebdriverIO | ✅ | ✅ | ✅ | ✅ | ✅(Appium 内置集成) |
| Robot Framework | ✅ | ✅ | ✅(依赖底层) | ✅ | ✅(Appium 插件) |
| Puppeteer | ✅ | ⚠️ | ❌ | ✅(Chromium based) | ❌ |
| Katalon | ✅ | ✅ | ✅ | ✅ | ✅(Appium 集成) |
| Testim | ✅ | ✅ | ⚠️(有限) | ✅ | ⚠️(限量) |
| 产品 | 支持语言 |
|---|---|
| Playwright | TypeScript / JavaScript / Python / Java / C# |
| Cypress | TypeScript / JavaScript(仅) |
| Selenium | Java / Python / C# / Ruby / JavaScript / Kotlin |
| WebdriverIO | TypeScript / JavaScript |
| Robot Framework | 关键字 DSL(底层 Python/Java) |
| Puppeteer | TypeScript / JavaScript |
| Katalon | Groovy / Java(脚本模式) |
| Testim | 无代码 + 有限 JS 自定义 |
基于 Checkly 独立 benchmark(1000 次执行,相同测试场景):
| 产品 | 单测执行时间(相对) | 启动延迟 | 内存占用 | CI 并行方案 |
|---|---|---|---|---|
| Playwright | 基准(最快) | 低 | 低(共享进程) | 原生分片(免费) |
| Cypress | +23%(长套件收窄至 +3%) | 高(+5–7s) | 中(双进程) | Cloud 付费 或 手动 |
| Selenium | +30–50% | 中 | 高(每 session 独立 browser) | Selenium Grid(自建) |
| WebdriverIO v9 | 接近 Playwright(BiDi) | 中 | 中 | 自配 / BrowserStack |
| Robot Framework | 同 Selenium(底层一致) | 中 | 高 | 同 Selenium |
| Puppeteer | 接近 Playwright(单浏览器) | 低 | 低 | 手动 |
关键结论:Cypress 短测试场景时约慢 23%,长套件(50+ 用例)差距收窄;但每次 CI 都要额外 5–7 秒启动,大规模套件累计成本显著。
| 维度 | Playwright | Cypress | Selenium | WebdriverIO |
|---|---|---|---|---|
| 自动等待机制 | ✅ 所有 action 内置 actionability check | ✅ 内置但有 iframe/shadow DOM 缺陷 | ❌ 需手动 wait | ✅ v9 大幅改善 |
| 重试机制 | 原生 retries 配置 |
原生 retries |
依赖第三方 | 原生 retry |
| 网络拦截 | ✅ 内置 route() | ✅ 内置 intercept() | ❌ 需 BrowserMob Proxy | ✅ mock service worker |
| iframe / Shadow DOM | ✅ 原生支持 | ⚠️ 有已知问题 | ✅ 支持 | ✅ v9 闭合 Shadow DOM 首支持 |
| 多 Tab/窗口 | ✅ 原生 | ❌ 不支持多 Tab | ✅ | ✅ |
| 产品 | 内置调试工具 | 截图/录屏 | 时间旅行 | 报告 |
|---|---|---|---|---|
| Playwright | ✅ UI Mode、Trace Viewer、--debug |
内置,失败自动 | ✅ Trace 逐步回放 | HTML + JUnit + JSON |
| Cypress | ✅ Time Travel(快照) | 内置,每步快照 | ✅ 经典时间旅行 | Mochawesome / Dashboard(付费) |
| Selenium | ❌ 无内置 | 需插件(Extent Reports) | ❌ | 需第三方(Allure、ExtentReports) |
| WebdriverIO | ⚠️ 需 @wdio/allure-reporter | 需插件 | ❌ | Allure / Spec Reporter |
| Robot Framework | ⚠️ 文本日志 | 内置截图关键字 | ❌ | 自带 HTML log,可集成 Allure |
| Puppeteer | ❌ 无测试运行器 | 需手动 | ❌ | 无内置 |
| Katalon | ✅ 内置录制器 + 报告 | 自动截图 | ❌ | TestOps 平台(部分付费) |
| Testim | ✅ 内置 + 可视化步骤 | 自动录屏 | ⚠️ 视频回放 | SaaS 平台内置 |
| 产品 | 录制能力 | 代码质量 | POM 结构 |
|---|---|---|---|
| Playwright Codegen | ✅ npx playwright codegen |
中(选择器较准确) | ❌ 需手动重构 |
| Cypress | ❌ 无内置(第三方插件可用) | — | — |
| Selenium IDE | ✅ 浏览器插件 | 低(大量 id/XPath) | ❌ |
| WebdriverIO | ❌ 无内置 | — | — |
| Katalon | ✅ 强大内置录制器 | 中 | ⚠️ 有但耦合度高 |
| Testim | ✅ 核心卖点 | 高(AI 优化) | 内置维护 |
| 产品 | 自愈(Self-healing) | AI 用例生成 | AI 成熟度 |
|---|---|---|---|
| Playwright | ❌ 无原生 | ❌ | — |
| Cypress | ❌ 无原生 | ❌ | — |
| Selenium | ❌ | ❌ | — |
| WebdriverIO | ❌ | ❌ | — |
| Robot Framework | ❌ | ❌ | — |
| Katalon | ✅ TrueTest AI(2023 年加入) | ⚠️ 部分功能 | 初级 |
| Testim | ✅ 核心能力(ML 定位器) | ✅ NLP 创建 | 成熟 |
| Puppeteer | ❌ | ❌ | — |
结论:开源框架均无原生 AI 自愈能力,但可通过外接 LLM API(如前文方案所设计)实现。商业工具的自愈能力仍有"偶发失效"问题(Testim 用户反馈在高度动态组件上仍偶发失效)。
| 产品 | 最佳实践范式 | 维护难点 |
|---|---|---|
| Playwright | POM + Fixtures,TypeScript 强类型 | 几乎无(选择器语义化,版本稳定) |
| Cypress | Commands + Fixtures | 异步处理有时令人困惑;多 Tab 无法测试 |
| Selenium | POM + PageFactory | Driver 版本管理繁琐;WebDriver 层增加脆弱性 |
| WebdriverIO | POM + Service 插件 | 配置项多,入门成本高 |
| Robot Framework | 关键字层级抽象 | 复杂逻辑用 DSL 写起来别扭,难以 Code Review |
| Katalon | 对象库 + 手动模式/脚本模式 | 强供应商锁定,迁移成本极高;Groovy 非主流 |
| Testim | 可视化步骤树 | 强平台依赖;导出代码质量低 |
| 产品 | 并行方案 | 是否需要付费 | 最大并发 |
|---|---|---|---|
| Playwright | 原生 --shard=N/M,GitHub Actions matrix |
免费 | 无限制(资源限制) |
| Cypress | Cypress Cloud(付费) 或 手动配置 | 需付费($67–$167/月) | 按计划 |
| Selenium | Selenium Grid(自建)/ BrowserStack | 自建免费 / 云服务付费 | 取决于基础设施 |
| WebdriverIO | maxInstances 配置,多 browser |
免费 | 本地资源限制 |
| Robot Framework | pabot(第三方)或 Selenium Grid |
免费 | 有配置成本 |
| Katalon | TestCloud 付费 | 需付费 | 按计划 |
| Testim | SaaS 内置并行 | 需付费 | 按计划 |
| 产品 | 许可证 | 直接成本 | 隐性成本 |
|---|---|---|---|
| Playwright | Apache 2.0 | $0 | 工程师学习时间(低) |
| Cypress | MIT(核心) | $0(本地运行) | Cypress Cloud 如需并行付费 |
| Selenium | Apache 2.0 | $0 | 配置 + 维护 Driver 成本高 |
| WebdriverIO | MIT | $0 | 配置复杂,上手成本高 |
| Robot Framework | Apache 2.0 | $0 | Python 环境 + 依赖管理 |
| Puppeteer | Apache 2.0 | $0 | 仅 Chromium,局限明显 |
| 产品 | 免费层 | 付费起步 | 5 人团队月估算 | 合同锁定风险 |
|---|---|---|---|---|
| Katalon | Studio 基础版(有限) | $175/人/月(年付) | $875+/月 | 中(Groovy 迁移难) | |
| Cypress Cloud | 500 次录制免费 | $67/月(3 用户) | ~$150/月 | 低(代码本地) | |
| Testim(Tricentis) | 有限免费试用 | ~$500/月起(团队) | ~$500–1000/月 | 高(平台依赖) | |
| BrowserStack(云执行) | 100 分钟试用 | $99/月(5 并发) | ~$200–400/月 | 低(框架无关) |
关键结论:商业平台的隐性成本往往高于标价——供应商锁定(代码迁移成本)和学习成本在人力成本上往往比许可费更昂贵。
评分维度:1–5 分,5 分最佳
| 维度(权重) | Playwright | Cypress | Selenium | WebdriverIO | Robot FW | Katalon | Testim | Puppeteer |
|---|---|---|---|---|---|---|---|---|
| 稳定性(20%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 执行速度(15%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 调试体验(15%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 跨浏览器(10%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| 上手难度(10%) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 可维护性(15%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 生态社区(10%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 成本效益(5%) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 加权总分 | 4.75 | 4.30 | 3.30 | 3.85 | 3.45 | 3.25 | 3.50 | 3.60 |
适用:新项目首选、追求稳定性的 CI 流水线、跨浏览器覆盖要求严格的团队
关键优势:
关键缺陷:
适用:JS/TS 前端为主的小型团队、SPA 项目、开发人员自测
关键优势:
关键缺陷:
适用:已有大量 Java/Python 存量脚本的企业、需要测试老旧浏览器(IE)、与 Appium 移动端配合
关键优势:
关键缺陷:
适用:从 Selenium 迁移的团队、需要 Appium 移动端集成、BDD/Cucumber 场景
关键优势:
关键缺陷:
适用:以手工测试为主、有非技术业务人员参与的团队、关键字驱动的接受测试(ATDD)
关键优势:
关键缺陷:
适用:无编程能力的手工测试团队、预算充足的 SMB、需要 Web+Mobile+API 统一平台
关键优势:
关键缺陷:
适用:测试人员全无编程能力、UI 频繁变更的产品、预算充足的企业
关键优势:
关键缺陷:
适用:仅需 Chrome 自动化的轻量场景、Node.js 爬虫、截图服务
关键优势:
关键缺陷:
你需要测试原生移动 App?
├── YES → Appium(+ WebdriverIO 或 Selenium)
└── NO
↓
团队有 TypeScript/JavaScript 能力?
├── NO
│ ├── 有 Python 能力 → Robot Framework
│ ├── 完全无编程 + 预算充足 → Katalon(接受锁定风险)
│ └── 完全无编程 + 预算有限 → 培训 + Playwright
└── YES
↓
现有大量 Selenium 存量代码?
├── YES → WebdriverIO v9(平滑迁移) 或 逐步迁移 Playwright
└── NO
↓
需要 Safari 真实支持(非 WebKit 模拟)?
├── YES → Selenium 4(无奈之选)
└── NO
↓
团队规模 / 预算?
├── 小团队 + 纯前端 → Cypress(快速上手)
└── 任意规模 + 追求长期稳定 → ✅ Playwright(首选)
结合前文《Web 自动化测试系统深度分析报告》的三阶段落地计划,各工具在本项目中的定位如下:
| 工具 | 本项目定位 | 理由 |
|---|---|---|
| Playwright | 主框架(UI + API) | 综合评分最高,落地难度低,社区最活跃 |
| Allure Report | 报告层 | 与 Playwright 集成成熟,GitHub Pages 免费托管 |
| Robot Framework | ❌ 不引入 | 底层仍是 Selenium,无法改善稳定性 |
| Katalon | ❌ 不引入 | 供应商锁定 + 高成本,与目标方案冲突 |
| Selenium | ❌ 不引入 | 无增量价值,徒增维护负担 |
| Cypress | ⚠️ 备选 | 若团队强烈倾向前端纯 JS 可作补充 |
| WebdriverIO | ⚠️ 移动端扩展时 | 未来若需 Appium 真机,可与 Playwright 并存 |
| Testim | ❌ 不推荐 | 成本高,与自建 AI 辅助方案冲突 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。