Pitaliumをつかってみた〜 DockerとJenkinsでデバッグ 〜
前回までの記事で、すでにPitaliumを利用したデバッグ環境ができあがっていると思います。今回は、Jenkinsを利用して、PitaliumのCI(継続的インテグレーション)周りを見ていきましょう。尚、今回のサーバー構成とそのプロセスは次のような形を想定しています。

本テストではJenkins、Selenium Hub、Nodeサーバは全てDockerでの設定とします。管理されるコードはGitHubとし、JenkinsによりコードのチェックアウトとGradleを起動して、Seleniumサーバへ接続します。
今回はGitHubのリポジトリよりコードを取得しますので、あらかじめテストコードをGitHubへ配備しておきましょう。また、前回までの記事の中のSeleniumサーバとGradleの設定を利用しますので、ぜひ本シリーズの記事も合わせてご覧下さい。
1.Dockerを利用してJenkinsとSeleniumサーバを立ち上げる
まずは、Dockerを利用してJenkinsを立ち上げましょう。WindowsユーザもMacユーザもDocker Toolboxが利用できます。Docker Toolbox | dockerよりツールをダウンロードしてインストールして下さい。
※ 執筆時点ではWindowsでの動作は不安定のようです。MacもしくはLinux環境での利用をお勧めします。
今回はKitematicでDockerをコントロールしていきます。インストールして起動するとこのような画面が表示されます。

ここからJenkinsを選び、CreateボタンをクリックするとJenkinsのインストールが始まります。
インストールが完了するとJenkinsの起動画面となります。VOLUMESをクリックしてJenkinsが利用するディレクトリを設定します。

その後、左上あたりの「WEB PREVIEW」をクリックするとJenkinsが起動します。
次にSeleniumのサーバを設定、起動します。こちらはコマンドラインから以下のコマンドを実行して下さい。
docker run -d -p 4444:4444 --name selenium-hub selenium/hub
docker run -d -v /dev/urandom:/dev/random -P --link selenium-hub:hub selenium/node-chrome-debug
Dockerの設定は以上です。改めてDockerは便利だと感じます。
2.リソースファイルの修正
capabilitiesのplatform項目をLINUXとします。
/src/test/resources/capabilities.json
[
{
"platform": "LINUX",
"browserName": "chrome"
}
]
environmentConfig.jsonにSelenium hubのアドレスを指定します。
/src/test/resources/environmentConfig.json
{
"hubHost": "xxx.xxx.xxx.xxx",
"hubPort": 4444
}
Selenium Hubの起動アドレスの取得方法は色々ありますが、DockerのKitematicから下記の通り表示されますので、その値を設定して下さい。

3. Jenkinsでプロジェクトを設定する。
Jenkinsが起動すると次のような画面が表示されます。

今回はGitHubのリポジトリを利用しますので、GitHubプラグインのインストールが必要になります。まずはJenkinsのプラグイン設定を行います。サイドメニューよりJnekinsの管理 -> プラグインの管理 と進みます。

プラグイン管理の画面で 利用可能 タブをクリックして、左上のフィルタの項目に git plugin と入力します。絞り込まれた中に GIT plugin がありますのでチェックを入れて下さい。その後 再起動せずにインストール をクリックします。

すぐにインストールが始まります。念のため インストール完了後、ジョブが無ければJenkinsを再起動する にチェックを入れ、Jenkinsを再起動しておきましょう。

再起動したら、ダッシュボードから新しいジョブをクリックします。ジョブ名は pitalium-job としましたが任意でOKです。そして フリースタイル・プロジェクトのビルド にチェックして、 OK ボタンをクリックして下さい。

すぐにプロジェクトが作成され設定画面が開きます。プロジェクト名は入っていますが変更も可能です。

ソースコード管理のセクションで Git にチェックを入れます。リポジトリの設定フィールドが展開されますので、GITのデータを Repository URL、Credentials の項目に設定します。Credentials は新しく追加をしておきます。Credentialsの 追加 ボタンをクリックして、次の画面を表示します。

ユーザ名、パスワード にGitHubリポジトリにログインする値を設定して下さい。
下の方にスクロールして、ビルドセクションにテストのためのシェルの記述を行います。ビルド手順の追加 -> シェルの実行 をクリックすると、スクリプトの記入エリアが展開されます。ここに以下の一行を追記します。
$WORKSPACE/gradlew clean build

保存して終了します。そしてサイドメニューより ビルド実行 をクリックして下さい。問題がなければビルド履歴に正常終了を表す青丸となって終了します。正常終了の場合、Resultディレクトリ配下にスクリーンショットが配備されていますので確認して下さい。

赤丸となった場合は何らかのエラーですので、次の項目を再度チェックしてみて下さい。
- リポジトリは正しいか?(ID、パスワードを含む)
- コードはチェックアウトされているか?
- VOLUEMESのディレクトリをクリックしてチェックして下さい。
デフォルトでは/var/jenkins_home/jobs/pitalium-job/workspace/
配下に配備されます。 - DockerのSeleniumサーバは起動しているか?(ポートなどもチェック)
最後に
Jenkinsを利用してPitaliumを利用することで、定期的にテストを実行することが可能になります。Jenkinsは便利な反面、導入までの敷居が高いですが、Dockerを利用する事で簡単に設定することができました。
Seleniumサーバの設置も思いの外、簡単だったと思います。これを機会にぜひ導入を検討してみて下さい。
Pitaliumに関する過去の記事はこちら
コメントは受け付けていません。