Magic Podの使い方 > SauceLabsのクラウド環境での一括テスト実行(モバイルアプリテスト)

SauceLabsは、様々な種類のブラウザ・モバイル実機端末を使って、手動・自動テストを簡単に行えるクラウドサービスです。
Selenium・Appiumのテスト実行クラウドを提供する企業としては業界最大手で機能も充実していますが、価格は少しお高めです。
対応機種・OSバージョン
こちらの「Real devices」の項目にて確認できます。国内メーカーの端末は扱っていないものもありますが、かなり多くの種類の端末が選べます。
利用方法
まずはSauceLabsトップページの「Try it free」ボタンからアカウントを登録します。送られてくる認証メールをクリックしてSauceLabsにログインすると、図1のダッシュボード画面に移動します(図1の画面に移動しない場合はブラウザから「https://billing.saucelabs.com/plans」を開いてください)。これで14日間の無料トライアルが開始されます。

Magic Podの場合はSauceLabsの実機端末を使うので、図1の「Access Real Devices Automation」を選択します。
続いて図2の画面に移動するので、ここでは「Install Remote」を選択してください。するとアプリ名を聞かれるので、テストしたいアプリの名前を付けて保存します。

これで準備ができたので、続いてテスト一括実行の画面で、図3のように必要な項目を入力します。

[1]ユーザー名
SauceLabsの画面右上「Account Settings」(図4)>「PROFILE」>「Username」(図5)に表示されたユーザー名を指定します。


[2] TestObject APIキー
SauceLabsのアプリの画面(図6)で「Get Started」または「Setup Instructions」を選ぶと図7の画面に移動するので、ここで指定されている「testobject_api_key」の値を入力します1 。なお、「Accont Settings」の「User API Key」を使ってもうまくいかないので注意してください。


[3] データセンター
SauceLabsには「United States」と「Europe」の2種類のデータセンターがあり、利用できる端末のラインナップが微妙に異なります。図7の「View Devices」を選ぶと、それぞれのデータセンターで利用可能な端末を確認できます
[4] バージョン・機種
図7の「View Devices」から、データセンターに応じた利用可能端末を選んでください。(図8)

- 無料トライアル中は、「Free」というラベルのついた端末でしかテスト実行できません。
- 明示されていませんが、無料トライアルでは複数端末を同時に使うことはできないようです。
- バージョンは部分一致で、例えば「13」を指定すると「13.1」「13.2」などにもマッチします。詳細はSauceLabsのドキュメントを参考にしてください。
- 端末名には「iPhone .*」のように正規表現が使えます。詳細はSauceLabsのドキュメントを参考にしてください。
テスト結果
Magic Podのテスト結果画面に加えて、SauceLabsの画面上でもテスト結果が確認できます。この画面では、テストのログや、現在実行中および実行後のテストの動画を確認することができます。(図9)

コマンドライン実行
こちらの方法で、コマンドラインからもテスト一括実行が可能です。
複数種類の端末に対するテスト一括実行
こちらの方法で、複数種類の端末に対するテスト一括実行が可能です。
制限事項
- SauceLabsのiOS端末は、プッシュ通知が無効化されており、プッシュ通知の権限許可ダイアログも表示されません(参考)。プッシュ通知のテストをSauceLabsで行いたい場合は、SauceLabsのプライベートクラウドプランを契約する必要があります。
既知の問題
SauceLabs上でのテストに関しては以下の問題があります。
- testobject_api_keyが間違っていると、SauceLabs上でエラーが起きて「SauceLabsへのファイルアップロードに失敗しました; コード: 500; レスポンス:」という分かりにくいエラーメッセージになります。
- App store/Play storeアプリのログイン状態がリセットされないことがあります。そのため、App store/Play storeアプリでApple ID/Googleアカウントをお使いになる場合、ログアウト処理をテストケースに入れる必要があります。
- TestObjectというのは、SauceLabsが数年前に買収した実機クラウドサービスです。SauceLabsへの統合を進めているようですが、「testobject_api_key」のように一部名前が残っていることがあります [↩]