Selenium Grid
既存のSelenium GridインスタンスでWebdriverIOを使用できます。テストをSelenium Gridに接続するには、テストランナーの設定でオプションを更新するだけです。
サンプルのwdio.conf.tsからのコードスニペットを以下に示します。
export const config: Options.Testrunner = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...
}
Selenium Gridの設定に基づいて、プロトコル、ホスト名、ポート、パスに適切な値を指定する必要があります。テストスクリプトと同じマシンでSelenium Gridを実行している場合は、一般的なオプションを以下に示します。
export const config: Options.Testrunner = {
// ...
protocol: 'http',
hostname: 'localhost',
port: 4444,
path: '/wd/hub',
// ...
}
保護されたSelenium Gridの基本認証
Selenium Gridを保護することを強くお勧めします。認証が必要な保護されたSelenium Gridがある場合は、オプションを介して認証ヘッダーを渡すことができます。詳細については、ドキュメントのヘッダーセクションを参照してください。
動的Selenium Gridでのタイムアウト設定
オンデマンドでブラウザポッドがスピンアップされる動的Selenium Gridを使用する場合、セッションの作成はコールドスタートに直面する可能性があります。このような場合、セッション作成のタイムアウトを増やすことをお勧めします。オプションのデフォルト値は120秒ですが、グリッドが新しいセッションの作成に時間がかかる場合は、これを増やすことができます。
connectionRetryTimeout: 180000,
高度な設定
高度な設定については、テストランナーの設定ファイルを参照してください。
Selenium Gridでのファイル操作
リモートSelenium Gridでテストケースを実行する場合、ブラウザはリモートマシンで実行されるため、ファイルのアップロードとダウンロードを含むテストケースに特別な注意を払う必要があります。
ファイルのダウンロード
Chromiumベースのブラウザの場合、ファイルのダウンロードドキュメントを参照できます。テストスクリプトでダウンロードしたファイルの内容を読み取る必要がある場合は、リモートSeleniumノードからテストランナーマシンにダウンロードする必要があります。Chromeブラウザのサンプルwdio.conf.ts
設定からのサンプルコードスニペットを以下に示します。
export const config: WebdriverIO.Config = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...
capabilities: [{
browserName: 'chrome',
'se:downloadsEnabled': true
}],
//...
}
リモートSelenium Gridでのファイルのアップロード
リモートブラウザでWebアプリにファイルをアップロードするには、最初にファイルをリモートグリッドにアップロードする必要があります。詳細については、uploadFileドキュメントを参照してください。
その他のファイル/グリッド操作
Selenium Gridで実行できる操作がいくつかあります。Selenium Standaloneの手順は、Selenium Gridでも問題なく動作するはずです。使用可能なオプションについては、Selenium Standaloneドキュメントを参照してください。
Selenium Grid公式ドキュメント
Selenium Gridの詳細については、公式Selenium Gridのドキュメントを参照してください。
Docker、Docker compose、またはKubernetesでSelenium Gridを実行する場合は、Selenium-DockerのGitHubリポジトリを参照してください。