Selenium IDEから、Selenium WebDriver(Ruby)環境構築メモ。
覚えている限り。
動機
Windows端末上でSelenium IDE使ってWebページテストしていたけれど、ページ遷移が面倒だし、自分でKickするのは面倒くさいなあ。
→世の中にはSelenium Webdriverというものがあるらしいぞ。
→おまけに、サーバ内でモニターなくても試験できるヘッドレス環境というのもあるらしいぞ。
→さらに、Jenkinsという、タスクをKickするのに便利なモノもあるらしいぞ。
→JenkinsとSelenium Webdriverを組み合わせて、おまけにHeadlessでサーバ内でブラウザ立ち上げてテストしてしまえば、割と楽にできるのでは?
という安易な考えでスタート。
環境
VMでUbuntuを用意。 14.04使ってます。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
構築手順
Linuxサーバ
上記のとおりUbuntuをさくっとVM上に構築。
Ruby実行環境
rbenv+ruby環境構築。
こちらの記事をまるまるパクリました。
http://qiita.com/ringo/items/4351c6aee70ed6f346c8
rspec環境構築
Selenium IDEでフォーマットするとき、rspecが一番上に来てた、という安易な理由でrspec導入。
rspec調べてみると、結果判定できたり、出力できたり、と色々素敵。
$ gem install rspec
$ rspec -v
3.3.2
たぶんこれでrubyとrspecが入った気がする。たぶん。
必要なgemの導入(selenium-webdriver,webdriver-user-agent,headless)
Selenium Webdriverを利用するために、いくつかgemを追加で入れる。
1.selenium-webdriver
→何がなくても必要
2.webdriver-user-agent
→テスト対象のサイトはPCだけじゃなくてスマホ、ガラケーも対応してるので、useragent指定できる必要あり。
$ gem install selenium-webdriver
$ gem install webdriver-user-agent
ブラウザのインストール
UbuntuでWebページ開くために、ブラウザをインストールする。
Firefoxは
$ sudo apt-get install firefox
でサクっと入りました。
時系列的にはあとでわかったことだけれど、日本語フォント入れないと
Imagemagickでスクショ取ったとき、日本語が□□□ みたいになって悲しくなったので、
日本語フォントもここで導入。
と、ここで何をどうして入れたのか忘却・・・。
$ sudo apt-get install fonts-takao-pgothic
$ sudo apt-get install fonts-takao-mincho
$ sudo apt-get install fonts-takao-gothic
$ sudo apt-get install fonts-takao
あたりを入れたような入れてないような・・・。
思い出したら書きます。
Xvfbのインストール
Ubuntu上でヘッドレス環境を実現するために、うそんこのPC画面をつくってくれるらしい。
とてもステキ。
$ sudo apt-get install xvfb
で、Xvfbの起動方法はいろいろやり方あるみたいですが、ここではこのようにテストを実行する前にXvfb上でfirefoxを動かしてます。
$Xvfb :1 -screen 0 1024x768x24 &
ここで指定した:1がウィンドウの番号で、次にFirefoxを起動するときに使う、みたいな。
試しにfirefoxを立ち上げてみると、こんな感じですかね。
$export DISPLAY=:1
$firefox &
参考。
http://tobyho.com/2015/01/09/headless-browser-testing-xvfb/
と、初めてのポストはこんなもんで。
あとは、
Selenium-IDEからSelenium-Webdriverのコードを作るTips
Jenkinsからのテストコード実施
スクリーンショット撮るためのImagemagik導入
などなど書ければ。