狠狠撸
Search
Submit Search
础辫辫颈耻尘のテスト结果レホ?ートを蝉补丑补驳颈苍て?作ってみる
?
1 like
?
7,969 views
N
Nozomi Ito
2015/3/19のtestips.io ( http://connpass.com/event/6022/ )で発表した内容です。
Read less
Read more
1 of 32
Download now
Download to read offline
More Related Content
础辫辫颈耻尘のテスト结果レホ?ートを蝉补丑补驳颈苍て?作ってみる
1.
Appiumのテスト結果レポートを Sahaginで作ってみる 2015.03.19 伊藤 望(TRIDENT)
2.
自己紹介 ? 伊藤 望 ?
会社 ? 株式会社TRIDENT 代表取締役 ? テスト自動化の支援を行うベンチャー ? www.trident-qa.com (ブログあり) ? コミュニティ ? 「日本Seleniumユーザーコミュニティ」主宰 ? テスト自動化研究会
3.
本日のトピック 1. Appium 2. Sahagin 3.
Appium + Sahagin 4. その他モバイルテストツール 5. はまったこと
4.
1. Appium ? モバイル向け自動テストツール ?
Seleniumと同じようなコマンド体系 ? iOS & Android ? スマホ & タブレット ? エミュレータ & 実機 ? ブラウザ & ハイブリッド & ネイティブ
5.
2. Sahagin ? Selenium
WebDriverテスト結果のHTMLレポー トツール ? 今のところJavaのみ対応 ? オープンソース ? http://blog.trident-qa.com/2015/01/sahagin- first-release-1/ Sahagin Selenium 検索
6.
2. Sahagin できること① ? Seleniumのテストコードから、日本語
+ 画面 キャプチャのレポートを自動生成
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.
2. Sahagin できること① ? こんなテストレポートが生成されます
9.
2. Sahagin できること① ? 表示切替で、テストコードの内容も見られます
10.
2. Sahagin できること① ? SeleniumのコマンドやAssertコマンドを自動的 に日本語に変換 driver.findElement( By.name("your-name")).sendKeys("テストユーザー") 要素「name
= your-name」に「テストユーザー」を入力 assertThat(driver.getTitle(), is("検索結果")) 「ページタイトル」が「検索結果」に等しいことをチェック
11.
2. Sahagin できること② ? 自分で定義した独自のメソッドも日本語化
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.
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.
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.
2. Sahagin できること② ? こんなテストレポートが生成されます
16.
2. Sahagin できること② ? メソッドの中身も階層表示で開けます
17.
2. Sahagin 想定している使い方 ? 開発?テストチームで実施しているSeleniumテスト の内容を、 ?
上司にアピール! ? お客様にアピール! ? テストに興味ない隣の席の人にアピール! ? 他人が作成したテスト内容が把握しやすい ? テスト失敗時のエラー調査が効率的に ? 不具合を起こした人に、何がどう失敗しているか説明し やすい
18.
? Appiumのスクリプトもレポートにできます ? レポートはJenkins上でも確認できます 3.
Appium + Sahagin
19.
? iOSネイティブアプリのテスト ? Appiumテストは、Jenkinsから実行 3.
Appium + Sahagin デモ
20.
? Jenkins Sahaginプラグインをインストール ?
テストの前後にappiumサーバーの起動?終了処理 ? シェルスクリプトでバックグラウンドプロセスとして起動し ようとしたが、うまくいかなかった ? Javaテストコードの初期処理で、テスト実行前にAppium サーバーを起動 3. Appium + Sahagin Jenkinsの設定
21.
3. Appium +
Sahagin 色々な組み合わせ ? iOS(ネイティブアプリ) + Sahagin
22.
? Android(ブラウザ、タブレット) +
Sahagin 3. Appium + Sahagin 色々な組み合わせ
23.
3. Appium +
Sahagin 色々な組み合わせ ? Android(ネイティブアプリ) + Sahagin
24.
? デモで使用したコード ? https://github.com/SahaginOrg/sample-code ?
パスがベタ書き等、雑なサンプルなので注意 ? サンプルレポート ? http://sahaginorg.github.io/sample-report/ ? ブラウザから見られます(Safari以外) 3. Appium + Sahagin サンプル
25.
4. その他モバイルテストツール Selendroid ? Selendroid(ブラウザ)
+ Sahagin
26.
4. その他モバイルテストツール ? ios-driver ?
XCode6に未対応 ? XCode5もSNAPSHOT版でしか対応していない ? たぶんSahaginで動くが未検証 ? Robotium、Espresso ? JUnitランナー起動時にJVMに引数を渡せない(たぶん) ? 大変そうなので、今回は対応見送り
27.
5. はまったこと ? Androidエミュレータ上のブラウザで画面キャプチャ が取れない ?
chromeDriverの問題っぽい ? https://groups.google.com/forum/#!topic/appium- discuss/FvXnwzx9bK0 ? キャプチャ処理の前後で”NATIVE_APP”にコンテキストを 変更すれば動く ? Sahaginのバージョンアップで対応予定
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.
5. はまったこと ? Appiumの画面キャプチャ取得が遅すぎる ?
全ステップの画面キャプチャをとらないオプションをつける (Sahaginのバージョンアップで対応予定) ? シミュレータに関しては、デスクトップ上のウィンドウの画 面キャプチャを取るのもありかも
30.
5. はまったこと ? Jenkinsをルートユーザーで起動していると.. ?
Jenkinsビルド中からappiumサーバーを起動するときにエ ラーになる(appiumサーバーはsudoで起動できない)
31.
Sahagin ? 現在も開発継続中 ? Geb
& Spock対応 ? HTMLレポートのカスタマイズ機能 ? フィードバックもお待ちしてます
32.
ご清聴ありがとうございました
Download