Webアプリケーションは複数のブラウザに対応させる必要がありますが、その際、多種多様なブラウザを一括で管理することができ、一つのテストスクリプトからクロスブラウザテスティングを行うことのできるSelenium Gridが便利です。第4回の今回はコンテナ管理ツールのDockerを利用してSelenium Gridを構築する方法を解説します。後半では、筆者が現在注目しているZaleniumを使ったSelenium Grid構築について紹介します。
Selenium Gridとは
Seleniumには、複数のマシンで分散してブラウザ操作の自動化を実現するSelenium Gridという仕組みがあります。Selenium Gridを利用すると、Google ChromeやFirefoxやMicrosoft Edge等の多種多様なブラウザを一括で管理することができ、一つのテストスクリプトからクロスブラウザテスティングを行うことができます。
Selenium Gridは、ハブという管理サーバに、テストに必要なブラウザを持つノードが接続する構成をとります。これにより、テスト条件に合うノードが自動的に選択され、利用できるようになっています。
ハブには複数のノードが接続できますので、CI環境のように並列的にブラウザを動作させる必要がある環境でよく利用されています。
Dockerを使ってSelenium Gridを構築する
『Selenium実践入門』でもCI環境でのSelenium Gridの利用方法について書かれていますが、その当時に比べて、Dockerを代表とするコンテナ管理技術が一般的になってきました。
Seleniumは動作させるブラウザ以外にも必要なソフトウェアが多く、コンテナ技術とは相性がよいので、Dockerを使うことでSelenium Grid環境の管理コストを削減することができます。
公式のSeleniumHQがメンテナンスしているDockerイメージがあるので、そちらを使ってSelenium Gridをまずは紹介します。
なお、本記事では基本的なDockerのインストールやdockerコマンドの説明は行いません。Dockerの使い方については、英語になりますが公式チュートリアルなどをご参照ください。
また、2017年10月9日現在、以下の環境で動作確認を行っております。
- OS X El Capitan 10.11.6
- Docker for Mac 17.09.0-ce-mac35
- Ruby 2.4.1p111
- selenium-webdriver 3.6.0
この記事は参考になりましたか?
- 「日本Seleniumユーザーコミュニティ」のエキスパートが教えるSelenium最新事情連載記事一覧
-
- Seleniumで挑む、SPAのE2Eテスト自動化
- モバイルアプリのUIテストフレームワーク「Appium」の最新事情と、Appium Des...
- DockerでSelenium Gridを構築して複数マシンのブラウザ自動テストを行う
- この記事の著者
-
沖田 邦夫(オキタ クニオ)
精密機器メーカーにて新規事業開発のAPI・インフラ・システムアーキテクチャの設計・開発・テストを一通り経験後にDeNAに入社。 現在はテストエンジニアリングを担う部署であるSWET(Software Engineer in Test)グループのリーダー。 「Selenium実践入門」の共同執筆、雑誌「Web+DB PRESS」への寄稿も行っている。 Twitter:@okitan github:https://github.com/okitan
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
