Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Appiumのテスト結果レポートを
Sahaginで作ってみる
2015.03.19
伊藤 望(TRIDENT)
自己紹介
 伊藤 望
 会社
 株式会社TRIDENT 代表取締役
 テスト自動化の支援を行うベンチャー
 www.trident-qa.com (ブログあり)
 コミュニティ
 「日本Seleniumユーザーコミュニティ」主宰
...
本日のトピック
1. Appium
2. Sahagin
3. Appium + Sahagin
4. その他モバイルテストツール
5. はまったこと
1. Appium
 モバイル向け自動テストツール
 Seleniumと同じようなコマンド体系
 iOS & Android
 スマホ & タブレット
 エミュレータ & 実機
 ブラウザ & ハイブリッド & ネイティブ
2. Sahagin
 Selenium WebDriverテスト結果のHTMLレポー
トツール
 今のところJavaのみ対応
 オープンソース
 http://blog.trident-qa.com/2015/01/sahagin-
...
2. Sahagin
できること①
 Seleniumのテストコードから、日本語 + 画面
キャプチャのレポートを自動生成
2. Sahagin
できること①
 こんなSeleniumテストスクリプトから
@Test
public void 問い合わせが成功すること() {
driver.get("http://www-demo.trident-qa.com/co...
2. Sahagin
できること①
 こんなテストレポートが生成されます
2. Sahagin
できること①
 表示切替で、テストコードの内容も見られます
2. Sahagin
できること①
 SeleniumのコマンドやAssertコマンドを自動的
に日本語に変換
driver.findElement(
By.name("your-name")).sendKeys("テストユーザー")
要素「...
2. Sahagin
できること②
 自分で定義した独自のメソッドも日本語化
2. Sahagin
できること②
 問い合わせ画面ヘの処理をまとめたContactPage
クラス
public class ContactPage {
public void setName(String name) {
driver.f...
2. Sahagin
できること②
 ContactPageクラスを利用したテスト
@Test
public void 問い合わせが成功すること() {
driver.get("http://www-demo.trident-qa.com/c...
2. Sahagin
できること②
 ContactPageクラスに@TestDocで説明を追加すると、
@Page("問い合わせページ")
public class ContactPage {
@TestDoc("名前に「{name}」をセ...
2. Sahagin
できること②
 こんなテストレポートが生成されます
2. Sahagin
できること②
 メソッドの中身も階層表示で開けます
2. Sahagin
想定している使い方
 開発・テストチームで実施しているSeleniumテスト
の内容を、
 上司にアピール!
 お客様にアピール!
 テストに興味ない隣の席の人にアピール!
 他人が作成したテスト内容が把握しやす...
 Appiumのスクリプトもレポートにできます
 レポートはJenkins上でも確認できます
3. Appium + Sahagin
 iOSネイティブアプリのテスト
 Appiumテストは、Jenkinsから実行
3. Appium + Sahagin
デモ
 Jenkins Sahaginプラグインをインストール
 テストの前後にappiumサーバーの起動・終了処理
 シェルスクリプトでバックグラウンドプロセスとして起動し
ようとしたが、うまくいかなかった
 Javaテストコードの初期処理...
3. Appium + Sahagin
色々な組み合わせ
 iOS(ネイティブアプリ) + Sahagin
 Android(ブラウザ、タブレット) + Sahagin
3. Appium + Sahagin
色々な組み合わせ
3. Appium + Sahagin
色々な組み合わせ
 Android(ネイティブアプリ) + Sahagin
 デモで使用したコード
 https://github.com/SahaginOrg/sample-code
 パスがベタ書き等、雑なサンプルなので注意
 サンプルレポート
 http://sahaginorg.github.io/s...
4. その他モバイルテストツール
Selendroid
 Selendroid(ブラウザ) + Sahagin
4. その他モバイルテストツール
 ios-driver
 XCode6に未対応
 XCode5もSNAPSHOT版でしか対応していない
 たぶんSahaginで動くが未検証
 Robotium、Espresso
 JUnitランナ...
5. はまったこと
 Androidエミュレータ上のブラウザで画面キャプチャ
が取れない
 chromeDriverの問題っぽい
 https://groups.google.com/forum/#!topic/appium-
discu...
5. はまったこと
 XCode6.2で、シミュレータのSafariが動かない
 iOS8のシミュレータ:
 ウェブサイトにHTTP接続できない(HTTPSはできる)
 XCode再インストールで直るといいな..
 https://g...
5. はまったこと
 Appiumの画面キャプチャ取得が遅すぎる
 全ステップの画面キャプチャをとらないオプションをつける
(Sahaginのバージョンアップで対応予定)
 シミュレータに関しては、デスクトップ上のウィンドウの画
面キャプ...
5. はまったこと
 Jenkinsをルートユーザーで起動していると..
 Jenkinsビルド中からappiumサーバーを起動するときにエ
ラーになる(appiumサーバーはsudoで起動できない)
Sahagin
 現在も開発継続中
 Geb & Spock対応
 HTMLレポートのカスタマイズ機能
 フィードバックもお待ちしてます
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

Appiumのテスト結果レポートをsahaginで作ってみる

6,006 views

Published on

2015/3/19のtestips.io ( http://connpass.com/event/6022/ )で発表した内容です。

Published in: Software
  • Be the first to comment

Appiumのテスト結果レポートをsahaginで作ってみる

  1. 1. Appiumのテスト結果レポートを Sahaginで作ってみる 2015.03.19 伊藤 望(TRIDENT)
  2. 2. 自己紹介  伊藤 望  会社  株式会社TRIDENT 代表取締役  テスト自動化の支援を行うベンチャー  www.trident-qa.com (ブログあり)  コミュニティ  「日本Seleniumユーザーコミュニティ」主宰  テスト自動化研究会
  3. 3. 本日のトピック 1. Appium 2. Sahagin 3. Appium + Sahagin 4. その他モバイルテストツール 5. はまったこと
  4. 4. 1. Appium  モバイル向け自動テストツール  Seleniumと同じようなコマンド体系  iOS & Android  スマホ & タブレット  エミュレータ & 実機  ブラウザ & ハイブリッド & ネイティブ
  5. 5. 2. Sahagin  Selenium WebDriverテスト結果のHTMLレポー トツール  今のところJavaのみ対応  オープンソース  http://blog.trident-qa.com/2015/01/sahagin- first-release-1/ Sahagin Selenium 検索
  6. 6. 2. Sahagin できること①  Seleniumのテストコードから、日本語 + 画面 キャプチャのレポートを自動生成
  7. 7. 2. Sahagin できること①  こんなSeleniumテストスクリプトから @Test public void 問い合わせが成功すること() { driver.get("http://www-demo.trident-qa.com/contact/"); driver.findElement( By.name("your-name")).sendKeys("テストユーザー"); driver.findElement( By.name("your-email")).sendKeys("***@***.com"); driver.findElement( By.name("your-organization")).sendKeys("TRIDENT"); driver.findElement( By.name("your-subject")).sendKeys("テスト"); driver.findElement( By.name("your-message")).sendKeys("テスト送信です"); driver.findElement( By.cssSelector("input.wpcf7-submit")).click();
  8. 8. 2. Sahagin できること①  こんなテストレポートが生成されます
  9. 9. 2. Sahagin できること①  表示切替で、テストコードの内容も見られます
  10. 10. 2. Sahagin できること①  SeleniumのコマンドやAssertコマンドを自動的 に日本語に変換 driver.findElement( By.name("your-name")).sendKeys("テストユーザー") 要素「name = your-name」に「テストユーザー」を入力 assertThat(driver.getTitle(), is("検索結果")) 「ページタイトル」が「検索結果」に等しいことをチェック
  11. 11. 2. Sahagin できること②  自分で定義した独自のメソッドも日本語化
  12. 12. 2. Sahagin できること②  問い合わせ画面ヘの処理をまとめたContactPage クラス public class ContactPage { public void setName(String name) { driver.findElement( By.name("your-name")).sendKeys(name); } public void setMail(String email) { driver.findElement( By.name("your-email")).sendKeys(email); } ……
  13. 13. 2. Sahagin できること②  ContactPageクラスを利用したテスト @Test public void 問い合わせが成功すること() { driver.get("http://www-demo.trident-qa.com/contact/"); ContactPage contact = new ContactPage(driver); contact.setName("テストユーザー"); contact.setMail("***@***.com"); contact.setOrganization("TRIDENT"); contact.setSubject("テスト"); contact.setMessage("テスト送信です"); contact.send(); }
  14. 14. 2. Sahagin できること②  ContactPageクラスに@TestDocで説明を追加すると、 @Page("問い合わせページ") public class ContactPage { @TestDoc("名前に「{name}」をセットする") public void setName(String name) { driver.findElement( By.name("your-name")).sendKeys(name); } @TestDoc("メールアドレスに「{email}」をセットする") public void setMail(String email) { driver.findElement( By.name("your-email")).sendKeys(email); }
  15. 15. 2. Sahagin できること②  こんなテストレポートが生成されます
  16. 16. 2. Sahagin できること②  メソッドの中身も階層表示で開けます
  17. 17. 2. Sahagin 想定している使い方  開発・テストチームで実施しているSeleniumテスト の内容を、  上司にアピール!  お客様にアピール!  テストに興味ない隣の席の人にアピール!  他人が作成したテスト内容が把握しやすい  テスト失敗時のエラー調査が効率的に  不具合を起こした人に、何がどう失敗しているか説明し やすい
  18. 18.  Appiumのスクリプトもレポートにできます  レポートはJenkins上でも確認できます 3. Appium + Sahagin
  19. 19.  iOSネイティブアプリのテスト  Appiumテストは、Jenkinsから実行 3. Appium + Sahagin デモ
  20. 20.  Jenkins Sahaginプラグインをインストール  テストの前後にappiumサーバーの起動・終了処理  シェルスクリプトでバックグラウンドプロセスとして起動し ようとしたが、うまくいかなかった  Javaテストコードの初期処理で、テスト実行前にAppium サーバーを起動 3. Appium + Sahagin Jenkinsの設定
  21. 21. 3. Appium + Sahagin 色々な組み合わせ  iOS(ネイティブアプリ) + Sahagin
  22. 22.  Android(ブラウザ、タブレット) + Sahagin 3. Appium + Sahagin 色々な組み合わせ
  23. 23. 3. Appium + Sahagin 色々な組み合わせ  Android(ネイティブアプリ) + Sahagin
  24. 24.  デモで使用したコード  https://github.com/SahaginOrg/sample-code  パスがベタ書き等、雑なサンプルなので注意  サンプルレポート  http://sahaginorg.github.io/sample-report/  ブラウザから見られます(Safari以外) 3. Appium + Sahagin サンプル
  25. 25. 4. その他モバイルテストツール Selendroid  Selendroid(ブラウザ) + Sahagin
  26. 26. 4. その他モバイルテストツール  ios-driver  XCode6に未対応  XCode5もSNAPSHOT版でしか対応していない  たぶんSahaginで動くが未検証  Robotium、Espresso  JUnitランナー起動時にJVMに引数を渡せない(たぶん)  大変そうなので、今回は対応見送り
  27. 27. 5. はまったこと  Androidエミュレータ上のブラウザで画面キャプチャ が取れない  chromeDriverの問題っぽい  https://groups.google.com/forum/#!topic/appium- discuss/FvXnwzx9bK0  キャプチャ処理の前後で”NATIVE_APP”にコンテキストを 変更すれば動く  Sahaginのバージョンアップで対応予定
  28. 28. 5. はまったこと  XCode6.2で、シミュレータのSafariが動かない  iOS8のシミュレータ:  ウェブサイトにHTTP接続できない(HTTPSはできる)  XCode再インストールで直るといいな..  https://groups.google.com/forum/?hl=en#!topic/seleniumjp/5gbQzvxuMa4  iOS7のシミュレータ:  XCode6.2のinstrumentのバグで、下位バージョンのシミュ レータが動かせない  https://github.com/appium/appium/issues/4708#issuecomment-82410338
  29. 29. 5. はまったこと  Appiumの画面キャプチャ取得が遅すぎる  全ステップの画面キャプチャをとらないオプションをつける (Sahaginのバージョンアップで対応予定)  シミュレータに関しては、デスクトップ上のウィンドウの画 面キャプチャを取るのもありかも
  30. 30. 5. はまったこと  Jenkinsをルートユーザーで起動していると..  Jenkinsビルド中からappiumサーバーを起動するときにエ ラーになる(appiumサーバーはsudoで起動できない)
  31. 31. Sahagin  現在も開発継続中  Geb & Spock対応  HTMLレポートのカスタマイズ機能  フィードバックもお待ちしてます
  32. 32. ご清聴ありがとうございました

×