Seleniumのお試し環境Ruby版をDockerコンテナで作る

Seleniumのお試し環境Ruby版をDockerコンテナで作る

概要

ブラウザを使ったテストを行うときに必要になってくるのが、Selenium – Web Browser Automation
触ってみないとよくわからないというのはよくあることなので、Dockerコンテナを作った。

Seleniumとは

Selenium – Web Browser Automationはプログラムからブラウザを操作するソフトウェア。Webのシステムを自動でテストしようとすると、どうにかしてブラウザを操作する必要が出てくるので、欠かせない。
だが、実際にインストールして試してみようとすると

  • 試してみるには、結局何をインストールしなければならないの?
  • 依存しているソフトウェアは?バージョンは?
  • やっぱりやめようと思ったとき、きれいにアンインストールできる?

など、いろいろ気になってしまい、結局試せない、ということになってしまう。

DockerコンテナでSeleniumを動かす

幸いなことに、今はDocker – Build, Ship, and Run Any App, Anywhereがある。これを使えばインストール先はコンテナの中だし、いらなくなったらコンテナを消せばいい。

というわけで、Seleniumが動くコンテナを作ってみた。
GitHub – hiroaki0404/selenium-ruby-docker: Selenium container with Ruby。どの言語で操作プログラムを作るかということについては、取り敢えず、オブジェクト指向スクリプト言語 Rubyにしてみた。

使い方

Dockerの入門的なお話はここでは省略。というか、わざわざ書かなくても、わかりやすい説明がアチコチにあるので。
どこか適当なディレクトリで

git clone https://github.com/hiroaki0404/selenium-ruby-docker.git
git checkout selenium2

とやって手元にDockerfileを持ってきたら、ビルド。Docker Machineを使うって人は、

docker `docker-machine config マシン名` build -t se-ruby .

のようになる。

MacのDocker Machineで試す場合

起動は

docker `docker-machine config マシン名` run -P -d se-ruby

Seleniumが操作しているブラウザも、画面に表示させた方がわかりやすい。そこで、コンテナの中で動いているブラウザを表示させるため、sshが持っているX転送機能を使う。
Terminalで下記のように入力して、コンテナにログインする。

ssh -X docker@IPアドレス -p ポート番号

ここで、

IPアドレス
docker-machine ip マシン名

で表示されるIPアドレス

ポート番号
docker `docker-machine config マシン名` ps 

の表示のうち、 0.0.0.0:xxxxx->22 となっているxxxxxの数字

パスワード
docker

ログインしたら、firefox と入力して、firefoxが起動することを確認しておく。

WindowsのDocker Machineで試す場合

起動はGit Bash上で

docker `docker-machine config マシン名` run -P -d se-ruby

とする。
コンテナへのログインは、MobaXterm free Xserver and tabbed SSH client for Windowsを使う。Tera TermやPuTTYでは機能不足だ。
MobaXtermのSessionsメニューからTerminalを選択。そこで

ssh -X docker@IPアドレス -p ポート番号

と入力する。

IPアドレス
docker-machine ip マシン名

で表示されるIPアドレス

ポート番号
docker `docker-machine config マシン名` ps 

の表示のうち、 0.0.0.0:xxxxx->22 となっているxxxxxの数字

パスワード
docker

Macの場合と同様、コンテナにログインしたら、firefox と入力して、firefoxが起動することを確認しておく。

2016/11/26更新

Selenium 3がリリースされたため、リポジトリにselenium2用のブランチを作成。そのため、ブランチを切り替える手順を追加。

この記事へのコメント

Loading Facebook Comments ...

No Trackbacks.