Jenkins + Selenium + Django でテスト自動化のための環境構築
Jenkins + Seleniumを使ってリポジトリにコードをプッシュした際に、テストもやっちまいましょうよーってお誘いが来たので手順メモとして書いておく。
環境
- ubuntu10.04
- python2.6
- django1.3
必要なモノ
サーバー
- selenium-server-standalone.jar
- jenkins.jar
アプリケーション
Pythonライブラリ
手順
1, Ubuntu Serverにて、FireFoxを仮想フレームバッファで動かす
GUI環境のある場所でやる人はやらなくても良い部分。
Xvfbという仮想フレームバッファを使ってCUIでもFirefoxを動かせるようにしようぜってものだと思う。
インストール
sudo apt-get install xvfb sudo apt-get install firefox
環境変数の指定
export DISPLAY=:1.0
起動
Xvfb :1 -screen 0 1024x768x24 > /dev/null &
2, Selenium Serverを動かす
ダウンロード
http://seleniumhq.org/download/
起動
java -jar selenium-server-standalone.jar > /tmp/selenium.log 2>&1 &
3, djangoに必要なライブラリを入れる
seleniumを使ったテストの書き方は多分説明してるサイトが沢山あるので割愛。。
インストール
sudo pip install selenium sudo pip install unittest-xml-reporting
settings.py の編集
# 追加 TEST_RUNNER = 'xmlrunner.extra.djangotestrunner.XMLTestRunner' TEST_OUTPUT_VERBOSE = True TEST_OUTPUT_DESCRIPTIONS = True TEST_OUTPUT_DIR = 'xmlrunner'
4, Jenkins を動かす
ダウンロード
起動
java -jar jenkins.jar
プラグインの導入
TOP > Jenkinsの管理 > プラグインの管理 > 利用可能 > Jenkins Mercurial pluginにチェック > インストール
設定
新規ジョブ作成
フリースタイルプロジェクトのビルド
ソースコード管理システム > Mercurial
リポジトリブラウザ > Bitbucket
ビルドトリガ > 定期的に実行(1時間毎に実行する様に設定)
* */1 * * *
ビルド手順の追加 > シェルの実行
python manage.py test
ビルド後の処理 > JUnitテスト結果の集計にチェック
xmlrunner/*.xml
これで多分動くはず。。
思い出しながら書いたので間違ってる箇所もあるかも知れないので、飽くまで参考程度に。。
あとはBitbucketにpushしたらビルドが走る様にすれば完璧ですなー。