【入門】Geb+SpockではじめるWebテスト~GitHub + JenkinsによるWEBテスト自動化編~
【入門】Geb+SpockではじめるWebテスト~GitHub + JenkinsによるWEBテスト自動化編~
著者:ふじさわゆうき
この記事は、以下の記事の続きです。
初めて訪問した方は以下の記事を参照してください。
目次
- 前回までのあらすじ
- 今回の目的
- GitHubとは
- Jenkinsとは
- GitとSourceTreeインストール
- GitHubへソースをアップする
- JenkinsインストールとGitプラグインのインストール
- Jenkins+GitHubでテストを自動実行する
- Webテストを継続的かつ自動的に実行するフロー
1. 前回までのあらすじ
- Gebとは何かの説明
- Gebのメリット説明
- 「Eclipse + maven + Geb + Spock」での環境構築説明
- サンプルプログラム実装
- google検索⇒検索結果⇒WIKIという流れのWebテスト実施
- 「Geb + Spock」による上記Webテストの実施
- クロスブラウザの説明
- スクリーンショット出力方法の説明
- Mavenコマンドによるテスト自動実行方法の説明
2. 今回の目的
- "GitHub"と"Jenkins"を使ってWebテストを継続的、かつ自動的に実行する環境を構築すること
- 全体のフローは以下の通り
3. GitHubとは
以下、GitHub - Wikipediaより引用
- GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスである
- Gitバージョン管理システムを使用する
- Ruby on RailsおよびErlangで記述されており、GitHub社によって保守されている
- 主な開発者はChris Wanstrath、PJ Hyett、Tom Preston-Wernerである
- GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供している。
- 2009年のユーザー調査によると、GitHubは最もポピュラーなGitホスティングサイトとなった
4. Jenkinsとは
以下、Jenkins - Wikipediaより引用
- JenkinsとはJavaで書かれたオープンソース継続的インテグレーションツールである
- このプロジェクトはHudsonからフォークされた。オラクルが2010年12月にHudsonの商標を登録したことによるものである
- ビルドはバージョン管理システムにおけるコミットでのトリガ、cronライクのメカニズムを通したスケジューリング、他のビルドが完了した時の構築、特定のビルドURLによるリクエストといった様々な方法で起動することができる
5. GitとSourceTreeインストール
- 以下のサイトからWindows用のGitをダウンロードしてインストール画面を起動する
- 2015/05/26時点だと"Ver1.9.5"がダウンロード可能
- Git
- インストール設定
- インストール先: "C:\Program Files\Git"
- Adjusting your PATH environment: "Run Git from the Windows Command Prompt"
- デフォルトはUse Git Bash onlyだが、これは使いにくいのでダメ。"Use Git from the Windows Command Prompt"を選択すること。cmd.exe、PowerShell.exe、MinGW/MSYSのbash.exeなど、他のコマンドラインシェルからもGitコマンドを使えるようになる
- SourceTree for Windowsのインストール
- Download SourceTree for free
- SourceTreeは、JIRAなどで有名なAtlassian社が配布するGitやMercurialに対応した分散バージョン管理システム用のGUIクライアントである。Gitを扱うにあたって便利なのでインストールする
- 詳しい使い方は以下のサイトを参照する
6. GitHubへソースをアップする
- GitHubにユーザー登録する
- username , email , passwordの3つを入力して"Sing Up for GitHub"をクリック。確認メールが送られてくるので認証すれば完了と簡単!
- リポジトリ"GoogleWikipediaTest"を作成する。
- SourceTreeを使って"GoogleWikipediaTest"をクローンします
- 元のパス/URL: https://github.com/YukiFujisawa/GoogleWikipediaTest.git
- 保存先: C:\gitrepository\GoogleWikipediaTest
- Gitクローンしたフォルダ"C:\gitrepository\GoogleWikipediaTest"にEclipseワークスペースにある以下フォルダをコピーする
- GoogleWikipediaTest\driver
- GoogleWikipediaTest\src
- GoogleWikipediaTest\pom.xml
- Windowsのコマンドプロンプトを立ち上げて、以下、コマンドを実行する
- git config --global user.email "hoge@gmail.com"←GitHubに登録したメールアドレス
- git config --global user.name "YukiFujisawa"←GitHubに登録したユーザー名
- git add -f IEDriverServer.exe
- git add -f choromedriver.exe
- SourceTreeを使ってGitHubにソースをアップ(push)する
- 全てのソースをステージングエリアに登録する
- コミットする
- pushする
- GitHubにアップされたことを確認する
7. JenkinsインストールとGitプラグインのインストール
- Jenkins下記サイトからダウンロードしてインストールする
- http://jenkins-ci.org/
- 2015/05/26だと"Ver1.614"がダウンロード可能
- jenkins-1.614\setup.exeを実行する
- インストールが完了すると"http://localhost:8080/"で自動的にJenkinsが起動する
- Git pluginのインストール
- Jenkinsの管理 > プラグインの管理 > 利用可能
- Git Client Plugin
- Git Server Plugin
- GitHub API Plugin
- GitHub Plugin
- "ダウンロードして再起動後にインストール"をクリックする
- Jenkinsの管理 > プラグインの管理 > 利用可能
- Java, Mavenの設定
- Jenkinsの管理 > システムの設定
- JDK > JDK追加 > "自動インストール"のチェックを外す
- 名前: jdk1.7.0_79
- JAVA_HOME: C:\Program Files\Java\jdk1.7.0_79
- Maven > Maven追加 > "自動インストール"のチェックを外す
- 名前: maven-3.2.5
- MAVEN_HOME: C:\apache-maven-3.2.5
- JDK > JDK追加 > "自動インストール"のチェックを外す
- "保存"をクリックする
- Jenkinsの管理 > システムの設定
- Jenkinsを再起動する
8. Jenkins+GitHubでテストを自動実行する
- "GoogleWikipediaTest"実行用のジョブを作成する
- "新規ジョブ作成"をクリック
- ジョブ名: GoogleWikipediaTest
- 選択: フリースタイル・プロジェクトのビルド
- ジョブの設定
- ソースコード管理 > Git
- Repository URL: GitHubのRepositoryを指定する
- Credentials: GitHubのユーザー名、パスワードを設定する
- ビルド > ビルド手順の追加 > Mavenの呼び出し
- 使用するMaven: maven-3.2.5
- ゴール: test
- "新規ジョブ作成"をクリック
- ジョブの実行
- Jenkins > GoogleWikipediaTest > ビルド実行
- テスト結果を確認する
- Jenkins > GoogleWikipediaTest > ビルド履歴 > "実行日付"をクリック
- "Console Output"をクリック
- ログの一番下にテスト結果が表示される
9. Webテストを継続的かつ自動的に実行するフロー
Webテストを継続的かつ自動的に実行するフローは以下の通りとなる
- Eclipseにて「Geb + Spock」でWEBテスト作成
- 完成したWEBテストを"C:\gitrepository\GoogleWikipediaTest"にコピーする
- SourceTreeを使ってGitHubにソースをアップ(push)する
- Jenkins(http://localhost:8080/)にアクセスしてビルド実行
- テストスケジュールが設定できるので、設定すれば定期実行も可能
- テスト結果を確認する