Automated tests

「Automated tests」は実際のデバイスを使用して「JUnit」「Espresso」「Robotium」などAndroidで標準的に使用できる自動試験ツールや「Appium」「Calabash」のような外部試験ツールで自動的に試験を実施することを目的としたサービスになります。
※ 個々の自動試験ツールについての説明は別の機会に記載します。
そのため、試験を開始してもエミュレータのような画面は表示されず、粛々と自動試験が開始されてます。

設定方法は以下のようになります。
※ Projectの作成については、こちらの記事を参照してください。
  1. 任意のプロジェクトを選択し、タブ「Automated tests」の「Create a new run」を押下

  2. 試験対象となるアプリの種別(NativeアプリまたはWebアプリ)の選択
  3. 左のロボットとApple社のロゴボタンがNativeアプリ、HTML5のロゴボタンがWebアプリとなります。今回は「Nativeアプリ」を選択したものとして説明を進めます。

  4. 選択すると、試験対象となるAPK/IPAのアップロードを求められるので、試験対象アプリのAndroid向けアプリであればAPK、iOS向けアプリであればIPAをアップロード

  5. アップロードすると、アップロードされたアプリの詳細な情報が表示されます。
    --- 2017.06.14追記(始) ---
    Activity欄に記載されるActivityはAndroidManifestに定義されているActivityの内、以下のIntent-Filterを持つもので且つAndroidManifest内で最初に定義されているものとなります。
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    
    また、Activityは存在しているが、上記の条件に合うActivityが存在しない場合はAndroidManifest内で最後に定義されているものとなります。
    そして、Activityが存在しないときは空欄となります(試験自体は使用する試験ツール次第になります)
    --- 2017.06.14追記(終) ---
    アップしたものが間違っていないようでしたら、「Next step」を選択。

  6. 使用する試験ツールの設定
  7. アップロードしたアプリに組み込まれている試験ツール毎の設定を実施します。
    アプリに組み込まれている試験ツールに合わせて、赤枠内のラジオボタンを変更することで、緑枠内の表示が変わり、設定を変更することができます。

    設定に不備がある場合は、青枠内のアイコンが「!」になります。

  8. 自動試験ツールを実行したいデバイスを選択
  9. 自動試験ツールを実行したいデバイスを選択します。

    もしデフォルトで表示されているdevice pool「Top Devices」に好みのデバイスが存在していないときは、「Create a new device pool」を選択して好みのデバイスを選択することができます。ただし、自分が見たときは、日本メーカーのデバイスはSONY - XperiaとTOSHIBA - Excite Goしかありませんでした。なので、あまり過度な期待はなさらないように。

  10. 使用するデバイスのネットワーク状態などの初期値を設定
  11. 通信プロファイル、端末のロケーション情報、個々のモジュールのON/OFFを設定できます
    また通信プロファイルは以下の値を選択できます
    • 3G Average
    • 3G Good
    • 3G Lossy
    • Disabled
    • EDGE Average
    • EDGE Good
    • EDGE Lossy
    • Full
    • GPRS
    • HSDPA
    • WiFi Average
    • WiFi Good
    • WiFi Lossy

  12. 設定の最終確認
  13. 設定を確認し、変更が必要な場合はカテゴリ毎の「Edit」を選択することで、該当カテゴリの設定画面まで戻ることができますが、確認後は「Next step」を押下して再度設定を行う必要があります。
    ※ 該当カテゴリの設定画面にて、「Cancel」を押下すると、この「Run」生成そのものがキャンセルされたと扱われます。
    「Confirm and start run」を選択することで、自動試験が開始されます。

  14. 試験の実施
  15. 後はAWS Device Farmにて試験を実行してくれるので、暫く待ちます。

    試験が進捗すると、以下のような試験進捗画面が表示されます。

    全てのデバイスで試験を終えると以下のように表示されます。

    個々のデバイスでの結果をより詳細に確認する場合、それぞれの結果を選択することで表示させることが可能です。
    また、「Video」欄にはテスト時のデバイスの画面を見ることができます。これによりEspressoやUI Automatorなどで試験を実施したときに意図したとおりの画面遷移が行えているかを確認することができます。
    試験時のログなど以下のものを取得することができます。
    リンク概要
    Instrumentation Output自動試験ツール自体のログ ・UI Automatorの場合:
    INSTRUMENTATION_STATUS: numtests=1
    INSTRUMENTATION_STATUS: stream=
    jp.eq_inc.testuiautomator.TestARandUHAutomator:
    INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
    INSTRUMENTATION_STATUS: test=testArOnCamera
    INSTRUMENTATION_STATUS: class=jp.eq_inc.testuiautomator.TestARandUHAutomator
    INSTRUMENTATION_STATUS: current=1
    INSTRUMENTATION_STATUS_CODE: 1
    Video自動試験時の画面動画(screenrecord)-
    Logcat自動試験中のLogcatログファイル 実機やエミュレータで取得できるLogcatログファイルと一緒のため省略
    NetworkLinuxコマンド"tcpdump"の画面出力を保存した(ような)ファイル。TCP 02:35:55.544012 IP 192.168.1.10.37873 > edge-mqtt-shv-01-sea1.facebook.com.https: Flags [P.], seq 927332853:927332975, ack 3739796827, win 355, options [nop,nop,TS val 558945 ecr 2261075501], length 122
    02:35:55.568731 IP 192.168.1.10.40440 > sea15s07-in-f78.1e100.net.https: Flags [P.], seq 2032636361:2032637033, ack 1812527161, win 397, options [nop,nop,TS val 558948 ecr 799729604], length 672
    NetworkWi-Fiレベルのログ。Wi-Fiのトラブルがない限り、あまり役に立たないと思われる May 2 02:36:13 adf-harness daemon.info hostapd: wlan0: STA 50:2e:5c:38:70:86 IEEE 802.11: associated
    May 2 02:36:17 adf-harness daemon.info hostapd: wlan0: STA 50:2e:5c:38:70:86 IEEE 802.11: deauthenticated due to local deauth request
    May 2 02:36:17 adf-harness daemon.info hostapd: wlan0: STA 50:2e:5c:38:70:86 IEEE 802.11: disassociated


コメントの投稿