2inone0I9A7532_TP_V

概要

SELENIUMサーバーをDOCKERで構築してブラウザテストを自動化します。

テスト実行はホストPCにrubyファイルを配置&実行します。
rubyファイル内にSELENIUMサーバーへの接続URLを含めプログラミングする事でSELENIUMサーバー内でブラウザが自動で操作されてブラウザテストの自動化が可能となります。

前提

boot2dockerが使用出来る環境である事。

手順

1.boot2dockerをスタートさせる

下記コマンドでboot2dockerを起動します。

$ boot2docker start
$ eval "$(boot2docker shellinit)"

2.Docker Hubのイメージを使用してコンテナーを作成

下記コマンドでselenium-hubとchrome nodeの2つのコンテナーを作成します。

$ docker run -d -p 4444:4444 --name selenium-hub selenium/hub
$ docker run -d -v /dev/urandom:/dev/random -P --link selenium-hub:hub selenium/node-chrome-debug

下記の状態となっていれば成功です。

$ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                     NAMES
56d655b4ec2f        selenium/node-chrome-debug   "/opt/bin/entry_point"   About an hour ago   Up About an hour    0.0.0.0:32774->5900/tcp   gracious_ride
3e970dade038        selenium/hub                 "/opt/bin/entry_point"   About an hour ago   Up About an hour    0.0.0.0:4444->4444/tcp    selenium-hub

3.SELENIUMコンソールへアクセス

この時点でseleniumのコンソールにアクセス出来る事を確認します。
まずipを確認します。

$ boot2docker ip

下記URLでSELENIUMのコンソールに接続出来るはずです。

http://{$ boot2docker ip}:4444/grid/console

4.SELENIUMサーバーへGUIでアクセス

下記コマンドでポート番号を調べます。

$ docker port {node-chrome-debugのCONTAINER ID}

macのboot2dockerはVNCのクライアントがデフォルトで入っているのでSafariで 下記URLにアクセス。
GUIでデスクトップが表示されます。(passはsecret)

vnc://{$ boot2docker ip}:{$ docker port {node-chrome-debugのCONTAINER ID}}

ex) vnc://192.168.59.103:32770

5.テスト実行ファイルを作成

rubyでテストを記述するので下記コマンドでselenium-webdriverをインストール

$ gem install selenium-webdriver

下記をtest.rb としてホストPCに保存。


require "selenium-webdriver"

@driver = Selenium::WebDriver.for :remote, :url => "http://{IPアドレス}:4444/wd/hub", :desired_capabilities => :chrome

@driver.navigate.to "http://insight.hiliberate.biz/"

sleep(10)

puts @driver.current_url

@driver.save_screenshot('./insight.png')

@driver.quit

6.テスト実行

下記コマンドでテストを実行すると、safariで接続したGUIのブラウザが立ち上がる。

$ ruby test.rb

今回はブラウザを立ち上げてキャプチャを取るだけの動作です。
画像キャプチャはホストPCに保存されます。

また細かい使い方を書いてUPしたいと思います。

<参考サイト>
http://qiita.com/akasakas/items/233f04a5c47d2075c262
http://knowledge.sakura.ad.jp/tech/2631/

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on Yummly0