使用 Chrome 进行自动化和测试

自动浏览器测试对于构建稳健、高质量的 Web 应用至关重要。无论是运行端到端持续集成 (CI) 套件、跨浏览器版本执行回归测试,还是自动执行浏览器互动,Chrome 都提供了一套专用的工具和执行模式,专为开发者和测试自动化工程师而设计。

本概览介绍了 Chrome 自动化和测试生态系统中的核心产品(Chrome for TestingChromeDriverPuppeteerChrome 无头模式),并说明了如何将它们结合使用,以实现可靠且可重现的测试工作流。


Chrome for Testing

Chrome for Testing 是一种专用的 Chrome 版本,专门针对 Web 应用测试和自动化用例。

在运行端到端测试套件或持续集成 (CI) 流水线时,您通常需要在重复测试运行中获得一致且可重现的结果。Chrome for Testing 不依赖于标准浏览器安装,而是让您能够下载并固定特定 Chrome 版本以用于测试环境。

主要特性

  • 按需下载版本: 访问特定的 Chrome 二进制文件(带版本号),以便您始终针对所选的确切版本进行测试。
  • 跨渠道的配对二进制文件: 对于所有渠道(稳定版Beta 版开发者版Canary 版 )中的每个 Chrome 版本,Chrome for Testing 都提供与相关 ChromeDriver 二进制文件配对的匹配 Chrome 二进制文件,以及旧版 Chrome 无头 shell (chrome-headless-shell),供仍在自动化测试中使用该 shell 的用户使用。
  • 轻松实现下载自动化: 可以使用 @puppeteer/browsers 命令行实用程序轻松下载二进制文件,也可以通过可用性信息中心查询二进制文件。

了解详情


ChromeDriver

ChromeDriver 是一个开源独立服务器,用于实现 W3C WebDriver 标准和双向 WebDriver BiDi 协议。它充当基于 WebDriver 的测试框架(例如 Selenium、WebDriverIO 和 Nightwatch)与 Chrome 浏览器之间的桥梁。

主要特性

  • 支持 W3C WebDriver 和 WebDriver BiDi: 支持经典 WebDriver 自动化命令和通过 WebDriver BiDi 进行的实时双向通信,以便快速进行事件监听、网络监控和日志拦截。
  • 与 Chrome for Testing 同步发布: ChromeDriver 版本直接集成到 Chrome for Testing 基础架构中。对于每个 Chrome for Testing 版本,系统都会同时发布匹配的 ChromeDriver 版本,从而避免版本不匹配问题。

了解详情


Puppeteer

Puppeteer 是 Google 开发的 JavaScript 库,用于提供高级 API,以便通过 Chrome DevTools 协议 (CDP) 或 WebDriver BiDi 控制 Chrome。

主要特性

  • 零设置自动化: Puppeteer 默认会自动下载兼容的 Chrome for Testing 二进制文件,从而实现开箱即用的浏览器自动化。
  • 完全控制 Chrome: 轻松捕获屏幕截图、生成 PDF、自动提交表单、拦截网络请求,以及在有头模式或无头模式下执行界面测试。

了解详情


Chrome 无头模式

借助 Chrome 无头模式,您可以在无人值守的环境中运行 Chrome,而无需任何可见的用户界面。通过在命令行中传递 --headless 标志,Chrome 可以在服务器环境、容器和 CI/CD 流水线中干净地运行。

主要特性

  • 统一的浏览器引擎: 现代无头模式 (--headless) 与有头 Chrome 共享完全相同的浏览器实现。
  • 丰富的自动化和调试功能: 支持屏幕截图捕获、PDF 生成、远程调试和虚拟屏幕配置。

了解详情


示例:结合使用这些产品

在典型的自动化测试或持续集成 (CI) 工作流中,这些产品协同工作,提供可重现的无人值守测试环境:

  1. 浏览器二进制文件 (Chrome for Testing): 使用特定的、固定版本的 Chrome for Testing 二进制文件,以便您的测试结果在多次运行中具有确定性。
  2. 执行模式(Chrome 无头模式): 在 无头模式 (--headless) 下运行该二进制文件,以便测试在服务器、容器或 CI 流水线中干净地执行,而无需图形显示。
  3. 自动化驱动程序(Puppeteer 或 ChromeDriver): 使用自动化库(例如 Puppeteer )或通过 WebDriver BiDi 连接的任何其他测试框架来驱动浏览器。

Puppeteer 会自动连接这些组件。安装后,它会下载兼容的 Chrome for Testing 二进制文件,并默认在 无头模式 下启动该二进制文件。

使用 W3C WebDriver 框架(例如 Selenium 或 WebdriverIO)时,您可以自动下载一对匹配的 Chrome for TestingChromeDriver 二进制文件,并传递 --headless 标志以在没有界面的情况下运行。


企业和发布渠道指南