20140118 selenium勉強会 - Jenkins×Selenium 最初の一歩-

39,871 views

Published on

Published in: Technology
0 Comments
34 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
39,871
On SlideShare
0
From Embeds
0
Number of Embeds
30,527
Actions
Shares
0
Downloads
74
Comments
0
Likes
34
Embeds 0
No embeds

No notes for slide

20140118 selenium勉強会 - Jenkins×Selenium 最初の一歩-

  1. 1. 第1回 日本Seleniumユーザコミュニティ勉強会 Jenkins × Selenium 最初の一歩 玉川紘子 @nkns165 1
  2. 2. 自己紹介 名前:玉川 紘子(たまがわ ひろこ) 所属:株式会社SHIFT ソフトウェアテスト事業部 CI/自動テスト導入担当として活動 コミュニティ:STAR(テスト自動化研究会) 日本Jenkinsユーザ会 2
  3. 3. SeleniumでCI(継続的インテグレーション) ■Seleniumのテストを作成しただけでは… • • • 誰かがそのテストを実行しなければいけない テスト結果の確認、実行履歴の管理など周辺作業が残る 仕様が変わったらテストのメンテナンスが必要 → チームの意識が高くないと、すぐにテストが陳腐化してしまう ■Jenkinsとは • • • → フリーのCI(継続的インテグレーション)ツール GUI中心の直観的な操作で様々な設定が可能 Seleniumを始めとした様々なテストツールと連携が可能 予めテストケースを登録しておくと、 定期的に自動実行・結果通知・レポートの出力・ 履歴管理まで行ってくれる 3
  4. 4. 実行環境のイメージ テストコードを含む リソースを集約 コミット テスト コード 自動テスト担当 テスト 指示 バージョン管理 画面 キャプチャ メールやSkypeで フィードバック テスト レポート テスト用 クライアント テストレポートを表示 開発担当 テスト環境 本番環境 4
  5. 5. Seleniumのテストを補助してくれる 様々なプラグイン • • • • • • • • • Selenium AES plugin(549) Seleniumhq plugin(1712) Selenium Builder plugin(251) TestingBot Selenium plugin(105) seleniumhtmlreport plugin(1404) Selenium RC plugin(643) Selenium plugin(1118) Selenium Axis plugin(33) Selenium Grails plugin(不明) ※()内は2013年12月のダウンロード数 5
  6. 6. 何だかんだ言ってまだ現役 Selenium IDEを使っている場合 • • • • • • • • • Selenium AES plugin(549) Seleniumhq plugin(1712) Selenium Builder plugin(251) TestingBot Selenium plugin(105) seleniumhtmlreport plugin(1404) Selenium RC plugin(643) Selenium plugin(1118) Selenium Axis plugin(33) Selenium Grails plugin(不明) 6
  7. 7. IDEで記録・編集したHTMLを 設定するだけでテスト実行が可能 *firefox http://example.com suite/01.html result/01.html IDEでプラグインを使っている場合は 対応するJavaScriptの設定が必要。 その他、ポートの設定など -userExtensions userextensions.js -port 4445 7
  8. 8. 見慣れたテスト結果に加えて、 OK/NG数の遷移も見られる 青:OK 赤:NG 8
  9. 9. TestSuiteが多い場合は、 seleniumhtmlreport pluginで見やすく表示 9
  10. 10. Selenium2(WebDriver)を使っている場合 • • • • • • • • • Selenium AES plugin(549) Seleniumhq plugin(1712) Selenium Builder plugin(251) 明示的なSelenium用のプラグインは TestingBot Selenium plugin(105) 不要 seleniumhtmlreport plugin(1404) Selenium RC plugin(643) Selenium plugin(1118) Selenium Axis plugin(33) Selenium Grails plugin(不明) 10
  11. 11. xUnit形式のテスト結果を生成すれば 自動的にテストレポートが出来る  Javaの場合はAnt, Mavenなどのビルドツールから起動  他の言語でもたいていはプラグインが存在する  なければシェルスクリプト or Windowsバッチで代替 Mavenの場合 テスト実行 レポート生成 11
  12. 12. xUnit形式で出力することの利点  「いつからそのテストが失敗しているのか」すぐに分かる  Seleniumhq pluginでは出来ない機能  ソースコードの変更履歴と比較すれば、どのコミットで問 題が起きたかも分かる 12
  13. 13. Selenium Gridを使って並列テストを実行したい • • • • • • • • • Selenium AES plugin(549) Seleniumhq plugin(1712) Selenium Builder plugin(251) TestingBot Selenium plugin(105) seleniumhtmlreport plugin(1404) Selenium RC plugin(643) Selenium plugin(1118) Selenium Axis plugin(33) Selenium Grails plugin(不明) 13
  14. 14. Jenkinsのマスタ-スレーブ機能 × Selenium Grid たくさんのNodeを管理し、 いちいちサーバ起動するのは面倒 Node テスト用 クライアント テスト用 クライアント テスト用 クライアント Selenium Hub テスト用 クライアント 14
  15. 15. Selenium pluginを使った設定 ブラウザの種類などを設定するだけで、 簡単にSelenium Gridが完成 「selenium-client」という ラベルをつけたスレーブを SeleniumのNodeにする そのスレーブでは Firefoxを3インスタンス 起動する 15
  16. 16. JenkinsでSeleniumのテストをするときに 気をつけること  テスト環境はなるべく専用のものを用意する  繰り返しテスト実行しても問題ないように、データの初期 化の仕組みを作る  ジョブは機能のカテゴリごとに小分けにして作る  失敗したときに修正のモチベーションが湧きやすい  失敗の解析がしやすいよう、スクリーンショットをとる  JUnitの場合 http://softwaretest.jp/labo/tech/labo-298/ 16
  17. 17. まとめ Jenkinsで、Seleniumの魅力を 最大限に活用しよう!  Selenium IDE / WebDriverのテスト実行  レポート表示  Gridを使った並列テスト実行、マルチOS/ マルチブラウザテスト 17
  18. 18. ご清聴ありがとうございました! 18

×