如要建構穩健優質的網頁應用程式,自動化瀏覽器測試是不可或缺的環節。無論您是執行持續整合 (CI) 端對端套件、跨瀏覽器版本執行迴歸測試,還是自動執行瀏覽器互動,Chrome 都提供專屬的工具和執行模式套件,專為開發人員和測試自動化工程師設計。
本總覽介紹 Chrome 自動化和測試生態系統中的核心產品,包括 Chrome for Testing、ChromeDriver、Puppeteer 和 Chrome 無頭模式,並說明如何搭配使用這些產品,打造可靠且可重現的測試工作流程。
Chrome for Testing
Chrome for Testing 是專為網頁應用程式測試和自動化用途設計的 Chrome 版本。
執行端對端測試套件或持續整合 (CI) 管道時,您通常需要重複測試執行作業,並取得一致且可重現的結果。Chrome for Testing 可供您下載並固定特定 Chrome 版本,用於測試環境,不必依賴標準瀏覽器安裝作業。
主要功能與特色
- 依需求下載特定版本:存取特定版本的 Chrome 二進位檔,確保測試時使用的版本與您選擇的完全一致。
- 各管道的配對二進位檔:針對所有管道 (穩定版、Beta 版、開發人員版和 Canary 版) 的每個 Chrome 版本,Chrome for Testing 都會提供相符的 Chrome 二進位檔,以及相關的 ChromeDriver 二進位檔,並提供舊版 Chrome 無頭外殼 (
chrome-headless-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 是 Google 開發的 JavaScript 程式庫,可透過 Chrome 開發人員工具通訊協定 (CDP) 或 WebDriver BiDi 提供高階 API 來控制 Chrome。
主要功能與特色
- 免設定自動化:Puppeteer 預設會自動下載相容的 Chrome for Testing 二進位檔,啟用開箱即用的瀏覽器自動化功能。
- 全面掌控 Chrome:輕鬆擷取螢幕截圖、產生 PDF、自動提交表單、攔截網路要求,以及在有頭或無頭模式下執行 UI 測試。
瞭解詳情
Chrome 無頭模式
Chrome 無頭模式可讓您在無人看管的環境中執行 Chrome,且不會顯示任何使用者介面。在指令列中傳遞 --headless 標記,Chrome 就能在伺服器環境、容器和 CI/CD 管道中順利執行。
主要功能與特色
- 統一的瀏覽器引擎:新版無頭模式 (
--headless) 與有頭 Chrome 採用完全相同的瀏覽器實作方式。 - 豐富的自動化和偵錯功能:支援擷取螢幕截圖、產生 PDF、遠端偵錯及設定虛擬螢幕。
瞭解詳情
示例:結合使用這些產品
在典型的自動化測試或持續整合 (CI) 工作流程中,這些產品會共同提供可重現的無人測試環境:
- 瀏覽器二進位檔 (Chrome for Testing):使用特定且版本固定的 Chrome for Testing 二進位檔,確保測試結果在各次執行中都具有確定性。
- 執行模式 (Chrome 無頭模式):在無頭模式 (
--headless) 中執行該二進位檔,以便在伺服器、容器或 CI 管道中順利執行測試,且不會顯示圖形。 - 自動化驅動程式 (Puppeteer 或 ChromeDriver):使用 Puppeteer 等自動化程式庫或透過 WebDriver BiDi 連線的任何其他測試架構,驅動瀏覽器。
Puppeteer 會自動連結這些片段。安裝後,這個套件會下載相容的 Chrome for Testing 二進位檔,並預設以無頭模式啟動。
使用 W3C WebDriver 架構 (例如 Selenium 或 WebdriverIO) 時,您可以自動下載相符的Chrome for Testing 和 ChromeDriver 二進位檔,並傳遞 --headless 旗標,在沒有 UI 的情況下執行。