Selenium テストを Amazon Linux 上で定時自動実行する
Selenium IDE で作成・実行したテストを Amazon Linux 上で定時自動実行するための環境構築メモです。
Selenium IDE の導入や使用方法については,ここでは割愛します。
テストケースのエクスポート
作成したテストケースを選択し「ファイル」->「テストをエクスポート」->「Ruby / RSpec / WebDriver」と選択しエクスポートします。
エクスポートしたファイルに ${receiver}
の記載がある場合は @driver
に置換します。
Amazon Linux 環境構築
以下のとおり必要なものをインストールします。
コンパイルに必要なものたち
$ sudo yum install -y gcc readline-devel openssl-devel sqlite-devel bzip2-devel
Ruby 関連
$ sudo yum install ruby-devel ruby18-devel ruby19-devel ruby20-devel
rspec と selenium-webdriver
$ sudo gem install rspec $ sudo gem install selenium-webdriver
Firefox のインストール
t1.micro だと数時間かかります。
$ sudo wget -qO- https://gist.github.com/alingogo/5325484/raw | sudo bash
hicolor-icon-theme のインストール
これを入れていないと Xvbf 使用時にエラーが出たので入れていますが,必要ないかもしれません。
$ wget http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.13.tar.gz $ tar xvf hicolor-icon-theme-0.13.tar.gz $ cd hicolor-icon-theme-0.13 $ ./configure --prefix=/usr $ sudo make install
仮想フレームバッファツールのインストール
$ sudo yum install -y Xvfb xorg-x11-fonts* ImageMagick
日本語フォントのインストール
これもケースによっては必要ないかもしれません。必要と思われるケースは,例えば,日本語がテキストとして使用されているウェブサイトのスクリーンショットを取る場合です。その場合これがないと日本語が化けます。
$ sudo yum install -y ipa-gothic-fonts
定時自動実行の仕組み
シェルスクリプト内で仮想フレームバッファを立ち上げ,Firefox を起動し,Selenium IDE からエクスポートしたテストを実行させます。これを cron で動かします。
Selenium テスト
エクスポートしたテストを test.rb
とします。
cron で動かすために,この中に以下を追記します。
Selenium::WebDriver::Firefox::Binary.path='/usr/local/bin/firefox'
シェルスクリプト
- test.sh
#!/bin/sh DISPLAY=:8 /usr/bin/Xvfb $DISPLAY -screen 0 1024x768x24 +extension RANDR & export DISPLAY /usr/local/bin/firefox & /usr/local/bin/rspec /home/ec2-user/test.rb exit 0
cron
普通に crontab に登録します。
以上です。
私の環境では,上記テストが実行される少し前に,あるサーバーから EC2 インスタンスを立ち上げ,テストが終わる時刻を見計らってあるサーバーから EC 2 インスタンスを停止しています。
あるサーバーは Zabbix で監視しているので何かあるとすぐ分かるようになっています。