Selenium Grid
テスト環境
- Windows7 64bit SP1/ Windows 10 Pro 64bit / Mac OS X 10.11.6 / macOS 10.12.3
- JDK 1.8.0_111
Hubサーバのインストール~起動
インストール
Javaのインストール
- JRE1.8以上をインストールする。
※ Selenium 3系ではJava8以上が必要です。Java7以下を利用する場合は、Selenium 2系をお使いください。
Selenium Serverのダウンロード
- http://www.seleniumhq.org/download/ から
selenium-server-standalone-3.0.1.jar をダウンロードし、
任意の場所に保存する。
Hubの起動
- コマンドプロンプトを立ち上げ、Selenium Serverのjarが保存されている
フォルダへ移動する。 - 次のコマンドを実行し、Hubを起動する。
java -jar selenium-server-standalone-3.0.1.jar -role hub - ブラウザで次のURLを開き、「Grid Console」のページが見えることを確認する。
http://localhost:4444/grid/console
Nodeサーバのインストール~起動
インストール
Javaのインストール
- JRE1.8をインストールする。
Selenium Serverのダウンロード
- http://www.seleniumhq.org/download/ から
selenium-server-standalone-3.0.1.jar をダウンロードし、
任意の場所に保存する。
各種Driverのダウンロード
ブラウザごとにDriverファイルをダウンロードします。
Driverファイルの取得については、各種Driverの取得方法についても参照ください。
Node上でIEのテストを実行したい場合(Windowsのみ)
- http://www.seleniumhq.org/download/ から
IEDriverServer_x64_3.xx.x.zip をダウンロードし、
Selenium Serverのjarファイルと同じ場所に解凍する
(.jarと.exeを同じフォルダに配置する)。
IE7以上、Windows Vista または7の場合
- InternetExplorerを起動し、「インターネット オプション」を開く。
- 「セキュリティ」タブを開く。
- 「インターネット」~「制限付きサイト」の全てのゾーンで、
「保護モードを有効にする」のチェックをONまたはOFFに統一する。
IE10以上の場合
※ 64bit版 Windows + 64bit版 IE Driver Server を利用すると、文字入力(Sendkeysコマンド)が
非常に遅くなるという問題がある。
この問題は32bit版の IE Driver Serverを利用すると改善されるため、必要に応じて32bit版を
ダウンロードする。
⇒ 2015/6/29時点では、すべてのゾーンの保護モードおよび拡張保護モードを有効にすると解消する。
設定方法はこちらを参照(Japan IE Support Team Blogです)
IE11のみ
- https://msdn.microsoft.com/en-us/library/ie/dn800898(v=vs.85).aspx に従い、
KB2990999をインストールする。
- レジストリエディタを開き、次のレジストリキーを捜す。
見つからない場合は作成する。
・32bit:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
・64bit:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE - 上記キーの中に、「iexplore.exe」の名前でDWORD valueを作成する。値は0でよい。
※ 2015/01/21現在、更新プログラムKB3025390がインストールされていると
IE11でテストが動作しない。修正パッチ待ち。
→ 2015/02/10 リリースの KB3021952で修正された。
Node上でChromeのテストを実行したい場合
- https://sites.google.com/a/chromium.org/chromedriver/ から
最新のchromedriverをダウンロードし、Selenium Serverのjarファイルと同じ場所に解凍する
(.jarと.exeを同じフォルダに配置する)。
Node上でFirefoxのテストを実行したい場合
- https://github.com/mozilla/geckodriver/releasesから最新のzipファイルを取得し、解凍して geckodriver.exe を取得し、Selenium Serverのjarファイルと同じ場所に解凍する
※ FireFox 47.0以上のテストでは、Gecko Driver が必要になっています。
※ Gecko Driver を使用する場合、Selelnium Standalone Server 3.0以上が必要です。
※ 2016年9月時点でGecko Driverは開発中であり、動作が不完全です。Gecko Driverの開発状況は、MozillaのWebDriver Statusを参照してください。
Node上でMicrosoft Edgeのテストを実行したい場合 (Windows 10のみ)
- https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ から
最新のMicrosoft WebDriverをダウンロードし、Selenium Serverのjarファイルと同じ場所に解凍する
※ Pitaliumを使用する場合、build 10586以降である必要があります。
Node上でSafariのテストを実行したい場合(Max OS Xのみ)
- Safari9以前またはOS X 10.10(Yosemite)以前を使っている場合
こちらを参照して、SafariDriverをインストールしてください - Safari10以降、を使っている場合
Safari 10からはSafariDriverはプリインストールされているため、インストール作業は不要です。以下の設定をしてください。- 設定画面を開いて、開発メニューの表示をする
- リモートオートメーションを許可する
- 設定画面を開いて、開発メニューの表示をする
※ 初回Seleniumテスト時には実行前にMacのアカウントパスワード入力画面が表示されます。2回目以降は普通に実行されます。
nodeConfig.jsonファイルの用意
- Selenium Serverのjarファイルと同じフォルダに、次のような内容で
nodeConfig.jsonを作成する。
"capabilities":
[
{
"platform": "WINDOWS",
"browserName": "firefox",
"maxInstances": 2,
"version": "33.0",
"seleniumProtocol": "WebDriver"
},
{
"platform": "WINDOWS",
"browserName": "internet explorer",
"maxInstances": 2,
"version": "11.0",
"seleniumProtocol": "WebDriver"
},
{
"platform": "WINDOWS",
"browserName": "MicrosoftEdge",
"maxInstances": 2,
"seleniumProtocol": "WebDriver"
}
],
"maxSession": 5,
"hub": "http://localhost:4444/grid/register",
"port": 5051,
"register": true
}
Safariの場合は、以下の通り
"capabilities":
[
{
"platform": "MAC",
"version": "10.0",
"browserName": "safari"
}
],
"maxSession": 5,
"hub": "http://localhost:4444/grid/register",
"port": 5051,
"register": true
}
●項目の説明
・platform:Nodeを動作させる端末のOS。 ex) WINDOWS, MAC, LINUX
・browserName:そのNode上で起動できるブラウザ。 ex) firefox, internet explorer, chrome, safari
・maxInstances:browserNameで指定したブラウザを同時起動させる最大数。
・version:ブラウザのバージョン。
・seleniumProtocol:Selenium RC(Selenium1)、Selenium WebDriverのどちらのモードで実行するか。
・hub:このNodeを登録するHubのアドレス。
(上記はHubとNodeを同じ端末上で起動した例。別端末の場合はホストを書き換える。)
・port:Nodeを起動するポート。
Nodeの起動
- コマンドプロンプトを立ち上げ、Selenium Serverのjarが保存されている
フォルダへ移動する。 - 次のコマンドを実行し、Nodeを起動する。
java -jar selenium-server-standalone-3.0.1.jar -role node -nodeConfig nodeConfig.json
●テストしたいブラウザによって、それぞれ次のオプションを -jar の前に追加して起動する。
-Dwebdriver.ie.driver=IEDriverServer.exe (Windowsの場合のみ)
-Dwebdriver.chrome.driver=chromedriver.exe
-Dwebdriver.gecko.driver=geckodriver.exe
-Dwebdriver.firefox.bin="C:\Program Files\Mozilla Firefox\firefox.exe"
-Dwebdriver.edge.driver=MicrosoftWebDriver.exe (Windows10の場合のみ)
-Dwebdriver.safari.driver=/usr/bin/safaridriver (Safari 10+の場合のみ) - ブラウザでGrid Consoleのページを開き、2で立ち上げたノードが
コンソール画面に追加されていることを確認する。