win7 * appium * androidで実機自動テストやってみた。
DESCRIPTION
Win7 * appium * androidで実機自動テストやってみた。 2013.4.23 社内共有会にてTRANSCRIPT
Naoto KISHINOQuality Assurance Group
Windows × appium でandroid 実機自動テストやってみた
Outline
スマートデバイスの自動テストで
1. 目的2. やったこと3. 今後
What for ?目的
What for?
自動テストの網羅率向上スマデバシフトに対応“ 実機” で自動テスト
What for?
なぜ実機テストなのか?正常動作の担保エミュレータは重い機種・ OS 依存バグの発見
やっぱり面白そう !!
Tryやってみた
Try の前に
QA で使っている回帰テスト環境
Execution Server
Selenium Server StandaloneOrder Server
Try の前に
Selenium とは“Web ブラウザーを使ったテストの自動化を実現するテストフレームワークです。・ Web ブラウザーの操作を自動化・ Web 画面の要素の値を検証・ Web 画面のスクリーンショットを取得“ ( 引用 http://www.selenium.jp/selenium-and-appium)
Try の前に
今回はスマートデバイス実機テスト自動化の第一歩として、各端末標準のブラウザでのテスト実行環境を構築します。また、使用可能なテスト実行環境機は Windows7なので、 Android のみ構築可能です。
Windows7 * Android 実機 * 標準ブラウザ
あらためて
Tryやってみた
Try
1. Selenium だけでやってみた2. appium つかってやってみた
Try 1. Selenium のみ
なぜ Selenium だけなのか
ソフトウェアのバージョン管理Selenium3
http://seleniumhq.wordpress.com/2013/08/28/the-road-to-selenium-3/
Try 1. Selenium 単体
なぜ Selenium だけなのか
ソフトウェアのバージョン管理Selenium3
http://seleniumhq.wordpress.com/2013/08/28/the-road-to-selenium-3/
Try 1. Selenium のみ
構成Windows7Selenium Android Webdriverhttps://code.google.com/p/selenium/wiki/AndroidDriver
Android SDK
Try 1. Selenium のみ
android-server.apk(Android WebDriver)
Android SDK
Win7
> driver = webdriver.Remote( command_executor='http://localhost:8080/wd/hub', desired_capabilities=webdriver.DesiredCapabilities.ANDROID) > driver.get(“http://google.com/”)
Try 1. Selenium のみ
android-server.apk(Android WebDriver)
Android SDK
Win7
> driver = webdriver.Remote( command_executor='http://localhost:8080/wd/hub', desired_capabilities=webdriver.DesiredCapabilities.ANDROID) > driver.get(“http://google.com/”)
Try 1. Selenium のみ
android-server.apk(Android WebDriver)
Android SDK
Win7
> driver = webdriver.Remote( command_executor='http://localhost:8080/wd/hub', desired_capabilities=webdriver.DesiredCapabilities.ANDROID) > driver.get(“http://google.com/”)
Order Server
Try 1. Selenium のみ
使えなかった理由
TimeoutSocatSelenium Grid
Selenium3 でのモバイル対応http://seleniumhq.wordpress.com/2013/12/24/android-and-ios-support/
Try 1. Selenium のみ
使えなかった理由
TimeoutSocatSelenium Grid
Selenium3 でのモバイル対応http://seleniumhq.wordpress.com/2013/12/24/android-and-ios-support/
orz
Try 1. Selenium のみ
使えなかった理由Timeout 解消できずSocat 導入が困難Selenium Grid 使えずSelenium3 でのモバイル対応されず
http://seleniumhq.wordpress.com/2013/12/24/android-and-ios-support/
Try
1. Selenium だけでやってみた2. appium つかってやってみた
Try 2. appium
選定理由公式 ( っぽい ) サードパーティモジュールios, android 対応
selendroid -> android のみios driver -> ios のみ
全部のアプリ種別に対応(しているみたい)
Try 2. appium
TODO実行環境構築appium 動作確認・調査(os 別 , version 別、アプリ別 )
テストシナリオ作成実運用
Try 2. appium
環境構築Node.jsAndroid SDKJava JDKApach AntApach mavenGit各種環境変数の設定
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別
Android 全 Ver. ネイティブ / ハイブリッド / ブラウザ
iOS 全 Ver. ネイティブ / ハイブリッド / ブラウザ
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別
Android 全 Ver. ネイティブ / ハイブリッド / ブラウザ
iOS 全 Ver. ネイティブ / ハイブリッド / ブラウザ行けるはずでした・・・・・。orz
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別 テスト実行機 OS
Android 全 Ver. ネイティブ / ハイブリッド / ブラウザ
\ (^o^) /\ (^o^) / Windows7\ (^o^) /\ (^o^) /
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別 テスト実行機 OS
Android
4.2 以降 ネイティブ / ブラウザ
Windows7
Android
4.1 以前 ネイティブ Windows7
Android
全 Ver. ハイブリッド Windows7
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別 テスト実行機 OS
Android
4.2 以降 ネイティブ / ブラウザ
Windows7
Android
4.1 以前 ネイティブ Windows7
Android
全 Ver. ハイブリッド Windows7
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別 テスト実行機 OS
※Appium 純正の UI 操作モジュール
Android
4.2 以降 ネイティブ / ブラウザ
Windows7
※Appium のインターフェースだが 内部的に Selendroid という別の UI 操作モジュール
Android
4.1 以前 ネイティブ Windows7
Android
全 Ver. ハイブリッド Windows7
Try 2. appium
appium 動作確認・調査
OS 種別 Version アプリ種別 テスト実行機
Android
全 Ver. ネイティブ / ハイブリッド/ ブラウザ mac os
iOS 全 Ver. ネイティブ / ハイブリッド/ ブラウザ mac os
Try 2. appium
appium 動作確認・調査今回は下記の設定のみ実装しました。
OS 種別 Version アプリ種別 テスト実行機 OS
※Appium 純正の UI 操作モジュール
Android
4.2 以降 ネイティブ / ブラウザ
Windows7
Try 2. appium
real device(USB)
Execution Server
Android SDKadbport: 5037
appiumport: 4723
Try 2. appium
real device(USB)
Execution Server
Android SDKadbport: 5037
appiumport: 4723
Order Server
Try 2. appium
real device(USB)Execution
Serverterminal ware
Android SDKadbport: 5037
appiumport: 4723
>>> desired_caps = {desired_caps = { 'device':'Android', 'browserName': '', 'version': '4.2', 'app': r'D:\workspace\eclipse\sample_app\bin\sample_app.apk', 'app-package': 'com.example.sample_app', 'app-activity': 'MainActivity' }>>> driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
Next!今後
Next!
mac os x 以下に再構築iOS 対応ネイティブ対応シナリオ設計・追加スクリーンショット
画像差分テストにつかえるかも
Next!
開発者が開発しやすい環境にスピード + 品質
より面白い技術を組み込みたいテスト自動再実行化分散実行で高速化運用の最適化 ( ステージアップ時に自動実行 )プッシュ通知など実機独自の機能検証
ご清聴ありがとうございました。