什麼是 Nightwatch?
Nightwatch.js 是一個整合的框架,用於在所有主要瀏覽器上對 Web 應用程式和網站執行自動化的端對端測試。它是以 Node.js 編寫,並使用 W3C WebDriver API 與各種瀏覽器互動。
它是端對端和跨瀏覽器測試的完整解決方案。它旨在簡化編寫和執行各種測試的過程,包括
- 在所有主要 Web 瀏覽器上進行端對端測試
- Node.js 服務的單元測試
- HTTP API 的整合測試
Nightwatch 於 2014 年在荷蘭阿姆斯特丹創建,其名稱靈感來自荷蘭 17 世紀藝術家 林布蘭·凡·萊因 的著名畫作 夜巡。這件傑作在阿姆斯特丹的國立博物館中顯眼地展出。在此處深入了解 Nightwatch 的創建方式 。
架構概述
Nightwatch 以易於使用的 CLI 工具的形式發布,並內建支援所有主要瀏覽器:Chrome、Firefox、Safari 和 Edge。
Nightwatch 利用業界標準協定 WebDriver 執行瀏覽器自動化,該協定定義為 W3C 標準規範。
什麼是 WebDriver?
WebDriver 是一個用於自動化 Web 瀏覽器的通用程式庫,是 Selenium 專案的一部分。它現在是 W3C 規範,用於標準化瀏覽器自動化,提供可靠且一致的協定,可透過 restful HTTP API 遠端控制 Web 瀏覽器。
Selenium 於十多年前創建,是自動化測試產業中使用最廣泛的專案,提供一整套用於瀏覽器自動化的工具,最初以 Java 編寫,但現在支援大多數程式語言。
在內部,Nightwatch 使用 W3C WebDriver API 來執行與瀏覽器自動化相關的任務,例如開啟視窗或點擊連結。
支援 Selenium Grid 和雲端供應商
Nightwatch 也可與 Selenium Server (也稱為 Selenium Grid) 一起使用,進行大規模的分布式跨瀏覽器端對端測試。Selenium Server 是一個以 Java 編寫的開源專案,可管理 WebDriver 節點的網路。
Nightwatch 也可與 Browserstack、SauceLabs、CrossBrowserTesting、LambdaTest 或 TestingBot 等雲端測試平台整合。
支援的瀏覽器
WebDriver 由所有主要瀏覽器廠商實作為符合 W3C 規範的 HTTP 服務。
瀏覽器驅動程式 | 瀏覽器 | 說明 |
---|---|---|
GeckoDriver | ![]() |
獨立應用程式,實作 W3C WebDriver API,與 Firefox 通訊。 |
ChromeDriver | ![]() |
獨立應用程式,實作適用於 Chromium 的 W3C WebDriver API。 適用於 Android 上的 Chrome 和桌面版 (Mac、Linux、Windows 和 ChromeOS) 上的 Chrome。 |
Microsoft Edge 驅動程式 | ![]() |
獨立應用程式,用於驅動最近以 Chromium 為基礎的 Edge 瀏覽器,其運作方式與 ChromeDriver 類似。 |
SafariDriver | ![]() |
/usr/bin/safaridriver 二進位檔已預先安裝在最新版的 MacOS 中,並可依照 Apple 開發人員網站上的指示使用。如需詳細資訊,請參閱 關於適用於 Safari 的 WebDriver 頁面。 |