Win7 * appium * androidで実機自動テストやってみた。

Post on 11-Feb-2015

1.656 views 9 download

description

Win7 * appium * androidで実機自動テストやってみた。 2013.4.23 社内共有会にて

Transcript of Win7 * appium * androidで実機自動テストやってみた。

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!

開発者が開発しやすい環境にスピード + 品質

より面白い技術を組み込みたいテスト自動再実行化分散実行で高速化運用の最適化 ( ステージアップ時に自動実行 )プッシュ通知など実機独自の機能検証

ご清聴ありがとうございました。