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

39
Naoto KISHINO Quality Assurance Group Windows × appium で android でででででででででででで

Upload: naoto-kishino

Post on 11-Feb-2015

1.656 views

Category:

Engineering


9 download

DESCRIPTION

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

TRANSCRIPT

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

Naoto KISHINOQuality Assurance Group

Windows × appium でandroid 実機自動テストやってみた

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

Outline

スマートデバイスの自動テストで

1. 目的2. やったこと3. 今後

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

What for ?目的

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

What for?

自動テストの網羅率向上スマデバシフトに対応“ 実機” で自動テスト

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

What for?

なぜ実機テストなのか?正常動作の担保エミュレータは重い機種・ OS 依存バグの発見

やっぱり面白そう !!

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

Tryやってみた

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

Try の前に

QA で使っている回帰テスト環境

Execution Server

Selenium Server StandaloneOrder Server

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

Try の前に

Selenium とは“Web ブラウザーを使ったテストの自動化を実現するテストフレームワークです。・ Web ブラウザーの操作を自動化・ Web 画面の要素の値を検証・ Web 画面のスクリーンショットを取得“ ( 引用 http://www.selenium.jp/selenium-and-appium)

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

Try の前に

今回はスマートデバイス実機テスト自動化の第一歩として、各端末標準のブラウザでのテスト実行環境を構築します。また、使用可能なテスト実行環境機は Windows7なので、 Android のみ構築可能です。

Windows7 * Android 実機 * 標準ブラウザ

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

あらためて

Tryやってみた

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

Try

1. Selenium だけでやってみた2. appium つかってやってみた

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

Try 1. Selenium のみ

なぜ Selenium だけなのか

ソフトウェアのバージョン管理Selenium3

http://seleniumhq.wordpress.com/2013/08/28/the-road-to-selenium-3/

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

Try 1. Selenium 単体

なぜ Selenium だけなのか

ソフトウェアのバージョン管理Selenium3

http://seleniumhq.wordpress.com/2013/08/28/the-road-to-selenium-3/

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

Try 1. Selenium のみ

構成Windows7Selenium Android Webdriverhttps://code.google.com/p/selenium/wiki/AndroidDriver

Android SDK

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

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/”)

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

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/”)

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

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

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

Try 1. Selenium のみ

使えなかった理由

TimeoutSocatSelenium Grid

Selenium3 でのモバイル対応http://seleniumhq.wordpress.com/2013/12/24/android-and-ios-support/

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

Try 1. Selenium のみ

使えなかった理由

TimeoutSocatSelenium Grid

Selenium3 でのモバイル対応http://seleniumhq.wordpress.com/2013/12/24/android-and-ios-support/

orz

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

Try 1. Selenium のみ

使えなかった理由Timeout 解消できずSocat 導入が困難Selenium Grid 使えずSelenium3 でのモバイル対応されず

http://seleniumhq.wordpress.com/2013/12/24/android-and-ios-support/

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

Try

1. Selenium だけでやってみた2. appium つかってやってみた

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

Try 2. appium

選定理由公式 ( っぽい ) サードパーティモジュールios, android 対応

selendroid -> android のみios driver -> ios のみ

全部のアプリ種別に対応(しているみたい)

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

Try 2. appium

TODO実行環境構築appium 動作確認・調査(os 別 , version 別、アプリ別 )

テストシナリオ作成実運用

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

Try 2. appium

環境構築Node.jsAndroid SDKJava JDKApach AntApach mavenGit各種環境変数の設定

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別

Android 全 Ver. ネイティブ / ハイブリッド / ブラウザ

iOS 全 Ver. ネイティブ / ハイブリッド / ブラウザ

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別

Android 全 Ver. ネイティブ / ハイブリッド / ブラウザ

iOS 全 Ver. ネイティブ / ハイブリッド / ブラウザ行けるはずでした・・・・・。orz

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別 テスト実行機 OS

Android 全 Ver. ネイティブ / ハイブリッド / ブラウザ

\ (^o^) /\ (^o^) / Windows7\ (^o^) /\ (^o^) /

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別 テスト実行機 OS

Android

4.2 以降 ネイティブ / ブラウザ

Windows7

Android

4.1 以前 ネイティブ Windows7

Android

全 Ver. ハイブリッド Windows7

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別 テスト実行機 OS

Android

4.2 以降 ネイティブ / ブラウザ

Windows7

Android

4.1 以前 ネイティブ Windows7

Android

全 Ver. ハイブリッド Windows7

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別 テスト実行機 OS

※Appium 純正の UI 操作モジュール

Android

4.2 以降 ネイティブ / ブラウザ

Windows7

※Appium のインターフェースだが 内部的に Selendroid という別の UI 操作モジュール

Android

4.1 以前 ネイティブ Windows7

Android

全 Ver. ハイブリッド Windows7

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

Try 2. appium

appium 動作確認・調査

OS 種別 Version アプリ種別 テスト実行機

Android

全 Ver. ネイティブ / ハイブリッド/ ブラウザ mac os

iOS 全 Ver. ネイティブ / ハイブリッド/ ブラウザ mac os

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

Try 2. appium

appium 動作確認・調査今回は下記の設定のみ実装しました。

OS 種別 Version アプリ種別 テスト実行機 OS

※Appium 純正の UI 操作モジュール

Android

4.2 以降 ネイティブ / ブラウザ

Windows7

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

Try 2. appium

real device(USB)

Execution Server

Android SDKadbport: 5037

appiumport: 4723

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

Try 2. appium

real device(USB)

Execution Server

Android SDKadbport: 5037

appiumport: 4723

Order Server

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

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)

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

Next!今後

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

Next!

mac os x 以下に再構築iOS 対応ネイティブ対応シナリオ設計・追加スクリーンショット

画像差分テストにつかえるかも

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

Next!

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

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

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

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