コンテンツへスキップ

Pitaliumをつかってみた〜 DockerとJenkinsでデバッグ 〜

by : 2015/11/16

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

server-composition
server-composition

本テストでは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をコントロールしていきます。インストールして起動するとこのような画面が表示されます。

kitematic
kitematic

ここからJenkinsを選び、CreateボタンをクリックするとJenkinsのインストールが始まります。

インストールが完了するとJenkinsの起動画面となります。VOLUMESをクリックしてJenkinsが利用するディレクトリを設定します。

kitematic-volumes
kitematic-volumes

その後、左上あたりの「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から下記の通り表示されますので、その値を設定して下さい。

jenkins-address
jenkins-address

3. Jenkinsでプロジェクトを設定する。

Jenkinsが起動すると次のような画面が表示されます。

jenkins-start
jenkins-start

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

jenkins-plugin
jenkins-plugin

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

jenkins-plugin−git
jenkins-plugin−git

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

jenkins-plugin−restart
jenkins-plugin−restart

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

jenkins-newjob
jenkins-newjob

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

jenkins-project
jenkins-project

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

jenkins-credentials
jenkins-credentials

ユーザ名パスワード にGitHubリポジトリにログインする値を設定して下さい。

下の方にスクロールして、ビルドセクションにテストのためのシェルの記述を行います。ビルド手順の追加 -> シェルの実行 をクリックすると、スクリプトの記入エリアが展開されます。ここに以下の一行を追記します。

$WORKSPACE/gradlew clean build

jenkins-build-setting
jenkins-build-setting

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

jenkins-buildrun
jenkins-buildrun

赤丸となった場合は何らかのエラーですので、次の項目を再度チェックしてみて下さい。

  • リポジトリは正しいか?(ID、パスワードを含む)
  • コードはチェックアウトされているか?
  • VOLUEMESのディレクトリをクリックしてチェックして下さい。
    デフォルトでは/var/jenkins_home/jobs/pitalium-job/workspace/ 配下に配備されます。
  • DockerのSeleniumサーバは起動しているか?(ポートなどもチェック)

最後に

Jenkinsを利用してPitaliumを利用することで、定期的にテストを実行することが可能になります。Jenkinsは便利な反面、導入までの敷居が高いですが、Dockerを利用する事で簡単に設定することができました。

Seleniumサーバの設置も思いの外、簡単だったと思います。これを機会にぜひ導入を検討してみて下さい。

 

Pitaliumに関する過去の記事はこちら

From → テスト, Pitalium

コメントは受け付けていません。

%d人のブロガーが「いいね」をつけました。