概要
ブラウザを使ったテストを行うときに必要になってくるのが、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用のブランチを作成。そのため、ブランチを切り替える手順を追加。
コメント