Nightwatch での Selenium Server の使用
Nightwatch は、Selenium Server (Selenium Grid とも呼ばれる) と共に、大規模な分散クロスブラウザエンドツーエンドテストにも使用できます。 Selenium Server は、WebDriver ノードのネットワークを管理する Java で記述されたオープンソースプロジェクトです。
これは、複数のマシンで並列にテストを実行する簡単な方法を提供することを目的としています。
前提条件
- Node がシステムにインストールされていることを確認してください。このガイドで使用されているバージョンは v16.14.2 です。
- Java がシステムにインストールされていることを確認してください。このガイドで使用されているバージョンは openjdk 11.0.14 です。
Nightwatch のセットアップ
新しいディレクトリを作成し、そこに Nightwatch プロジェクトを開始します。
または、単一のコマンドで新しいディレクトリにプロジェクトを直接作成します。
npm init nightwatch <directory-name>
create-nightwatch をインストールするプロンプトが表示されたら、y
を押します。
これにより、Nightwatch がインストールされ、設定が尋ねられ、以下に示すように設定に基づいて nightwatch.conf.js
ファイルがセットアップされます。
設定
テストランナー
Nightwatch は他のテストランナーもサポートしています。 Nightwatch 以外にも、Mocha や Cucumber JS をテストランナーとして選択できます。
言語 - Javascript/Typescript
Nightwatch は v1.6.0 以降、テストファイルに Typescript をサポートしています。そのため、テストセットアップを Javascript または Typescript で行うことを選択できます。
ローカル/リモート (クラウド) での実行
Nightwatch を設定して、マシン上でローカルに実行したり、クラウドマシン上でリモートに実行したり、あるいはその両方を実行したりできます。
リモートテストの場合、BrowserStack
または Sauce Labs
を選択すると、ホストとポートの詳細が自動的に追加されます。ただし、独自のリモート Selenium サーバーまたはその他のクラウドプロバイダーで実行することを選択した場合は、nightwatch.conf.js
ファイルでホストとポートの詳細を手動で設定する必要があります。
ブラウザの選択
テスト対象のブラウザを選択すると、設定が自動的に作成されます。複数選択オプションが用意されているため、テストするブラウザをいくつでも選択できます。ローカルマシンでテストする場合は、selenium-server を使用することもできます。
選択したブラウザの上にあるリストから ローカル selenium-server
オプションを選択します。
テストフォルダー名
次に、テストを配置するフォルダーに名前を付けることができます。デフォルト値は tests です。
ベース URL
テストを実行するベース URL を追加します。この設定はデフォルトで http://localhost になります。
この設定を選択すると、Nightwatch のセットアップが開始されます。また、開始するためのサンプルテストも生成されます。
Mac から実行している場合、safaridriver はデフォルトで存在しますが、有効にする必要があります。次のオプションが表示されます。
テストを実行する
セットアップが完了したら、次のコマンドでテストを実行できます。
Firefox
npx nightwatch tests/specs/basic/ecosia.js --env selenium.firefox
Chrome
npx nightwatch tests/specs/basic/ecosia.js --env selenium.chrome
Safari
npx nightwatch tests/specs/basic/ecosia.js --env selenium.safari
出力は次のようになります。