2015/09/01
AndroidとiOSアプリをAWS Device Farmでテストしてみた
目次
こんにちは。エンジニアのなかむらです。
先々月、AWS(Amazon Web Service)の新サービス「AWS Device Farm」がリリースされました。AWS Device Farmとは、モバイルのアプリケーションテストサービスです。
- 作成した独自のテストスクリプトをアップロードして実行できる。
- UI に対するランダムなユーザー入力(タッチ、スワイプ、キーボード入力)のテストができる。
リリース当時の対応プラットフォームはAndroid、Fire OSだったのですが、先月4日、iOSにも対応されました。
ということでAndroidアプリとiOSアプリでさっそく試してみました!
利用可能テスティングフレームワーク
以下が利用できます。
フレームワーク | iOS | Android | 概要 |
---|---|---|---|
Built-in: Fuzz | ○ | ○ | テストコードが不要なUI に対するファズテスト(ランダムなユーザー入力が実行される) イベント数や待機時間の設定が可能。 |
Appium Java JUnit | ○ | ○ | Appiumによるユニットテストフレームワーク |
Appium Java TestNG | ○ | ○ | 高レベルなテストや統合テストもできるフレームワーク |
Calabash | ○ | ○ | BDD(Behavior-Driven Development)フレームワークである「Cucumber」のモバイル用ラッパー |
Ui Automation | ○ | ー | UIシナリオテストの自動化フレームワーク |
XCTest | ○ | ー | Xcodeのテストフレームワーク |
Instrumentation | ー | ○ | Androidコンポーネントのライフサイクルが制御できるテストフレームワーク |
ui automator | ー | ○ | Android SDKに標準で含まれているテスト自動化ツール |
用意するもの
アプリケーションファイルのみです。
Androidアプリならapkファイル、iOSアプリならipaファイルです。
テストコードも不要です。
Device Farmでやってみた
アプリケーションのアップロード
用意したアプリケーションファイルをアップロードします。
テストの設定
今回はテスティングフレームワークに「Built-in: Fuzz」 を選択しました。ランダムにアプリを動かしてテストしてくれます。
デバイスの選択
Androidのデバイスを選択する画面です。用意されていた「TopDevices」だとAndorid 4.4.2 ~ 5.0.2の端末が表示されました。
詳細設定
データの追加や他のアプリインストールができます。
また、Wi-Fi、Bluetooth、GPS や NFCの各機能の有効・無効設定や、デバイスロケールが設定できます。
確認画面
設定を確認して、「Confirm and start run」をクリックするとテストがはじまります。
実行中
この画面で、テストの進捗具合や結果を見ることができます。
テスト完了
終わるとこのような画面が表示されます。オールグリーン!異常なしです。
結果の確認
複数のデバイスでテストを実施したので、そのなかからひとつのデバイスを選択すると以下のような画面が見れます。
Detailsタブでは実施されたテストのログが確認できます。
パフォーマンスタブでは以下のように表示されます。
iOSアプリはスクリーンショットもとれていました。
Filesタブでは、ログファイルがダウンロードできるので、ログをみればどんなテストされたかがわかります。
まとめ
とても簡単に端末のテストができました!!
一度に複数の端末で試験を実施してくれます。Androidは端末の種類も多いので、手元に端末がなくてもテストができるのはとてもありがたいです。
Fuzzテストならテストコードがなくてもテストできるのも便利です。
AWS Device Farmには無料枠があるので、気軽に試すことができました。
テスト時間もAndroid, iOSどちらも5分くらいでしたし、まだまだ無料枠で利用できそうなので、アプリのバージョンアップなどのタイミングには継続して実施していきたいと思いました。