yfj2’s Automatic Web Test Related Blog

yfj2のWEBテスト自動化に関わるブログ

【入門】Geb+SpockではじめるWebテスト~GitHub + JenkinsによるWEBテスト自動化編~

【入門】Geb+SpockではじめるWebテスト~GitHub + JenkinsによるWEBテスト自動化編~
著者:ふじさわゆうき

この記事は、以下の記事の続きです。
初めて訪問した方は以下の記事を参照してください。

目次

  1. 前回までのあらすじ
  2. 今回の目的
  3. GitHubとは
  4. Jenkinsとは
  5. GitとSourceTreeインストール
  6. GitHubへソースをアップする
  7. JenkinsインストールとGitプラグインのインストール
  8. Jenkins+GitHubでテストを自動実行する
  9. Webテストを継続的かつ自動的に実行するフロー

1. 前回までのあらすじ

  1. Gebとは何かの説明
  2. Gebのメリット説明
  3. 「Eclipse + maven + Geb + Spock」での環境構築説明
  4. サンプルプログラム実装
    1. google検索⇒検索結果⇒WIKIという流れのWebテスト実施
    2. 「Geb + Spock」による上記Webテストの実施
  5. クロスブラウザの説明
  6. スクリーンショット出力方法の説明
  7. Mavenコマンドによるテスト自動実行方法の説明

2. 今回の目的

  • "GitHub"と"Jenkins"を使ってWebテストを継続的、かつ自動的に実行する環境を構築すること
  • 全体のフローは以下の通り
  • f:id:yfj2:20141130171051p:plain

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インストール

  1. 以下のサイトからWindows用のGitをダウンロードしてインストール画面を起動する
    • 2015/05/26時点だと"Ver1.9.5"がダウンロード可能
    • Git
  2. インストール設定
    • インストール先: "C:\Program Files\Git"
    • f:id:yfj2:20141130173129p:plain
    • 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コマンドを使えるようになる
      • f:id:yfj2:20141130172755p:plain
  3. SourceTree for Windowsのインストール

6. GitHubへソースをアップする

  1. GitHubにユーザー登録する
    • username , email , passwordの3つを入力して"Sing Up for GitHub"をクリック。確認メールが送られてくるので認証すれば完了と簡単!
    • f:id:yfj2:20141130174730p:plain
  2. リポジトリ"GoogleWikipediaTest"を作成する。
    • f:id:yfj2:20141130175149p:plain
    • f:id:yfj2:20141130175926p:plain
  3. SourceTreeを使って"GoogleWikipediaTest"をクローンします
  4. Gitクローンしたフォルダ"C:\gitrepository\GoogleWikipediaTest"にEclipseワークスペースにある以下フォルダをコピーする
    • GoogleWikipediaTest\driver
    • GoogleWikipediaTest\src
    • GoogleWikipediaTest\pom.xml
  5. 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
  6. SourceTreeを使ってGitHubにソースをアップ(push)する
    1. 全てのソースをステージングエリアに登録する
    2. コミットする
    3. pushする
    • f:id:yfj2:20141130182856p:plain
    • f:id:yfj2:20141130184226p:plain
  7. GitHubにアップされたことを確認する

f:id:yfj2:20141130191604p:plain

7. JenkinsインストールとGitプラグインのインストール

  1. Jenkins下記サイトからダウンロードしてインストールする
  2. Git pluginのインストール
    1. Jenkinsの管理 > プラグインの管理 > 利用可能
      • Git Client Plugin
      • Git Server Plugin
      • GitHub API Plugin
      • GitHub Plugin
    2. "ダウンロードして再起動後にインストール"をクリックする
  3. Java, Mavenの設定
    1. 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
    2. "保存"をクリックする
  4. Jenkinsを再起動する
    • f:id:yfj2:20141130194200p:plain

8. Jenkins+GitHubでテストを自動実行する

  1. "GoogleWikipediaTest"実行用のジョブを作成する
    1. "新規ジョブ作成"をクリック
      • ジョブ名: GoogleWikipediaTest
      • 選択: フリースタイル・プロジェクトのビルド
      • f:id:yfj2:20141130194758p:plain
    2. ジョブの設定
      • ソースコード管理 > Git
      • Repository URL: GitHubのRepositoryを指定する
      • Credentials: GitHubのユーザー名、パスワードを設定する
      • ビルド > ビルド手順の追加 > Mavenの呼び出し
        • 使用するMaven: maven-3.2.5
        • ゴール: test
  2. ジョブの実行
    • Jenkins > GoogleWikipediaTest > ビルド実行
    • f:id:yfj2:20141130202214p:plain
  3. テスト結果を確認する
    1. Jenkins > GoogleWikipediaTest > ビルド履歴 > "実行日付"をクリック
    2. "Console Output"をクリック
    3. ログの一番下にテスト結果が表示される
    • f:id:yfj2:20141130202545p:plain

9. Webテストを継続的かつ自動的に実行するフロー

Webテストを継続的かつ自動的に実行するフローは以下の通りとなる

  1. Eclipseにて「Geb + Spock」でWEBテスト作成
  2. 完成したWEBテストを"C:\gitrepository\GoogleWikipediaTest"にコピーする
  3. SourceTreeを使ってGitHubにソースをアップ(push)する
  4. Jenkins(http://localhost:8080/)にアクセスしてビルド実行
    • テストスケジュールが設定できるので、設定すれば定期実行も可能
  5. テスト結果を確認する