読者です 読者をやめる 読者になる 読者になる

僕はスピンサーブが打てない

 僕がスピンサーブを打てるまでの記録,あとその他のメモとか.

Selenium テストを Amazon Linux 上で定時自動実行する

Technology Tip AWS EC2 Amazon Linux Linux Test Selenium

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 で監視しているので何かあるとすぐ分かるようになっています。