Jenkins + Selenium + Django でテスト自動化のための環境構築

2011年8月10日水曜日 11:05 By Unknown , In , ,


Jenkins + Seleniumを使ってリポジトリにコードをプッシュした際に、テストもやっちまいましょうよーってお誘いが来たので手順メモとして書いておく。

環境

  • ubuntu10.04
  • python2.6
  • django1.3


必要なモノ

サーバー

  • selenium-server-standalone.jar
  • jenkins.jar

アプリケーション

  • Xvfb(仮想フレームバッファ)
  • Firefox

Pythonライブラリ

  • selenium
  • unittest-xml-reporting


手順

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 を動かす

ダウンロード

http://jenkins-ci.org/

起動
java -jar jenkins.jar
プラグインの導入

TOP > Jenkinsの管理 > プラグインの管理 > 利用可能 > Jenkins Mercurial pluginにチェック > インストール

設定

新規ジョブ作成
フリースタイルプロジェクトのビルド

ソースコード管理システム > Mercurial
リポジトリブラウザ > Bitbucket

ビルドトリガ > 定期的に実行(1時間毎に実行する様に設定)

* */1 * * *

ビルド手順の追加 > シェルの実行

python manage.py test

ビルド後の処理 > JUnitテスト結果の集計にチェック

xmlrunner/*.xml


これで多分動くはず。。
思い出しながら書いたので間違ってる箇所もあるかも知れないので、飽くまで参考程度に。。
あとはBitbucketにpushしたらビルドが走る様にすれば完璧ですなー。

0 コメント:

コメントを投稿