Nightwatch.js は、主要なすべてのブラウザでウェブアプリケーションやウェブサイトに対する自動化されたエンドツーエンドテストを実行するための統合フレームワークです。Node.js で記述されており、W3C WebDriver API を使用してさまざまなブラウザと対話します。

エンドツーエンドテストとクロスブラウザテストのための完全なソリューションです。さまざまな種類のテスト(以下を含む)の記述と実行のプロセスを簡素化することを目的としています。

  • 主要なすべてのウェブブラウザでのエンドツーエンドテスト
  • Node.js サービスのユニットテスト
  • HTTP API の統合テスト

Nightwatch は 2014 年にオランダのアムステルダムで作成され、その名前はオランダの 17 世紀の画家 レンブラント・ファン・レイン の有名な絵画 夜警 にちなんで付けられました。この傑作は、アムステルダムの国立美術館に飾られています。Nightwatch の作成方法の詳細については、こちらをご覧ください。

アーキテクチャの概要

Nightwatch は使いやすい CLI ツールとして配布されており、Chrome、Firefox、Safari、Edge などの主要なすべてのブラウザを組み込みでサポートしています。

Nightwatch は、W3C 標準仕様として定義されている業界標準プロトコル **WebDriver** を活用してブラウザの自動化を実行します。

Theory of Operation

WebDriver とは何ですか?

WebDriver は、ウェブブラウザを自動化するための汎用ライブラリであり、Selenium プロジェクトの一部です。現在は W3C 仕様 となっており、ブラウザの自動化を標準化し、RESTful **HTTP API** を介してウェブブラウザをリモートで制御するための信頼性が高く一貫性のあるプロトコルを提供しています。

10 年以上前に作成された **Selenium** は、自動化されたテスト業界で最も広く使用されているプロジェクトであり、ブラウザの自動化のための包括的なツールセットを提供しています。当初は Java 用に記述されましたが、現在はほとんどのプログラミング言語をサポートしています。

Nightwatch は内部的に W3C WebDriver API を使用して、ウィンドウを開いたりリンクをクリックしたりするなどのブラウザ自動化関連タスクを実行します。

Selenium Grid とクラウドプロバイダーのサポート

Nightwatch は、Java で記述されたオープンソースプロジェクトである Selenium Server(**Selenium Grid** とも呼ばれます)と併用して、大規模な分散型クロスブラウザエンドツーエンドテストにも使用できます。これは WebDriver ノードのネットワークを管理します。

Nightwatch は、BrowserstackSauceLabsCrossBrowserTestingLambdaTest、または TestingBot などのクラウドベースのテストプラットフォームと統合することもできます。

Selenium Server Operation

サポートされているブラウザ

WebDriver は、すべての主要なブラウザベンダーによって W3C 準拠の HTTP サービスとして実装されています。

ブラウザドライバ ブラウザ 説明
GeckoDriver Mozilla Firefox Firefox と通信するために W3C WebDriver API を実装するスタンドアロンアプリケーションです。
ChromeDriver Google Chrome Chromium 用に W3C WebDriver API を実装するスタンドアロンアプリケーションです。

Android の Chrome とデスクトップの Chrome(Mac、Linux、Windows、ChromeOS)で使用できます。
Microsoft Edge Driver Microsoft Edge Chromium ベースの最新の Edge ブラウザを駆動するために使用されるスタンドアロンアプリケーションで、ChromeDriver と同様に機能します。
SafariDriver Microsoft Edge /usr/bin/safaridriver バイナリは、最近のバージョンの MacOS にプリインストールされており、Apple Developer ウェブサイト の手順に従って使用できます。

詳細については、Safari の WebDriver についてのページをご覧ください。