Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

DockerでSelenium Gridを構築して複数マシンのブラウザ自動テストを行う

2017/10/25 14:00

 Webアプリケーションは複数のブラウザに対応させる必要がありますが、その際、多種多様なブラウザを一括で管理することができ、一つのテストスクリプトからクロスブラウザテスティングを行うことのできるSelenium Gridが便利です。第4回の今回はコンテナ管理ツールのDockerを利用してSelenium Gridを構築する方法を解説します。後半では、筆者が現在注目しているZaleniumを使ったSelenium Grid構築について紹介します。

目次
illustration by iwasawa
illustration by iwasawa

Selenium Gridとは

 Seleniumには、複数のマシンで分散してブラウザ操作の自動化を実現するSelenium Gridという仕組みがあります。Selenium Gridを利用すると、Google ChromeやFirefoxやMicrosoft Edge等の多種多様なブラウザを一括で管理することができ、一つのテストスクリプトからクロスブラウザテスティングを行うことができます。

 Selenium Gridは、ハブという管理サーバに、テストに必要なブラウザを持つノードが接続する構成をとります。これにより、テスト条件に合うノードが自動的に選択され、利用できるようになっています。

 ハブには複数のノードが接続できますので、CI環境のように並列的にブラウザを動作させる必要がある環境でよく利用されています。

Selenium Grid
Selenium Grid

Dockerを使ってSelenium Gridを構築する

 『Selenium実践入門』でもCI環境でのSelenium Gridの利用方法について書かれていますが、その当時に比べて、Dockerを代表とするコンテナ管理技術が一般的になってきました。

 Seleniumは動作させるブラウザ以外にも必要なソフトウェアが多く、コンテナ技術とは相性がよいので、Dockerを使うことでSelenium Grid環境の管理コストを削減することができます。

 公式のSeleniumHQがメンテナンスしているDockerイメージがあるので、そちらを使ってSelenium Gridをまずは紹介します。

 なお、本記事では基本的なDockerのインストールやdockerコマンドの説明は行いません。Dockerの使い方については、英語になりますが公式チュートリアルなどをご参照ください。

 また、2017年10月9日現在、以下の環境で動作確認を行っております。


著者プロフィール

  • 沖田 邦夫(オキタ クニオ)

     精密機器メーカーにて新規事業開発のAPI・インフラ・システムアーキテクチャの設計・開発・テストを一通り経験後にDeNAに入社。  現在はテストエンジニアリングを担う部署であるSWET(Software Engineer in Test)グループのリーダー。  「Selenium実践入門」の共同...

バックナンバー

連載:「日本Seleniumユーザーコミュニティ」のエキスパートが教えるSelenium最新事情
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5