ラクス Advent Calender 2018の14日目です。
久しぶりにSeleniumGridを使って、Seleniumのテストコードを実行する環境周りを触る機会がありましたので、起動方法とかを書いていこうかと思います。
SeleniumGridとは
- 複数のSeleniumの実行環境を管理し、並列にテストを実行できるツール
- 「Hub」と呼ばれるテストスクリプトを受け付けるサーバーと「Node」と呼ばれる実際にテストを実行する環境で構成されている
SeleniumGridの起動
Selenium Grid(Hub)の起動
- 必要なソフトウェア
-
Seleniumサイトから
selenium-server-standalone.jar
をインストール - JDKをインストール
-
Seleniumサイトから
- 起動方法
java -jar selenium-server-standalone.jar -role hub
http://[Selenium Grid ServerのIPアドレス]:4444/grid/console にアクセスするとコンソール画面が表示されるようになる
Selenium Grid(Node)の起動
- 必要なソフトウェア
-
Hub
と同様にselenium-server-standalone.jar
とJDK
をインストール - テストで使用するブラウザ
- 動かすブラウザの
WebDriver
をインストール(例としてGoogle Chromeは、ここから)
-
- 起動方法
java -Dwebdriver.chrome.driver=/path/to/chromedriver.exe -jar selenium-server-standalone.jar
起動すると、Hubのコンソール画面に接続したNodeの情報が表示されるようになります。
Nodeのマシンでテストコードを動かすためには、RemoteWebDriver
を使う必要がありますが、そこは次回で。。
まとめ
テストを実行する環境を別にすることで、環境依存で発生するエラーが起きにくいのと、テストする内容によってNodeマシンを追加・設定すれば良いだけなので管理も楽になると感じました。
次はテストを並行で実行できるようにSelenium Gridの設定周りを試してみようかと思います。
(Dockerとかを使ってNodeを増やして、テストにかかる時間を短縮とかも)