Firebase Test Lab for Android Robo テスト

Robo テストは、Firebase Test Lab for Android に統合されたテストツールです。Robo テストはアプリの UI の構造を分析してから、ユーザー アクティビティを自動的にシミュレートすることによって体系的な調査を行います。Robo テストを使用して、特定の端末設定で、同一の設定を使用してアプリをテストする場合、Robo テストは UI/Application Exerciser Monkey テストとは異なり、常に同じユーザー アクティビティを同じ順序でシミュレーションします。これにより、UI/Application Exerciser Monkey テストでは不可能な方法で、Robo テストを使用しバグの修正の検証や回帰テストを行うことができます。

Robo テストは、ログファイルをキャプチャして一連の注釈付きスクリーンショットを保存します。次にスクリーンショットから動画を作成し、実行したユーザー操作をシミュレートして表示します。これらのログ、スクリーンショット、動画は、アプリがクラッシュした際の根本原因の特定や、アプリの UI の問題を把握するのに役立ちます。

Robo テストのタイムアウト

アプリの UI の複雑さによっては、詳細な UI インタラクションのセットを Robo テストで完了するのに 5 分以上かかることがあります。テストのタイムアウトは、通常のアプリで 120 秒(2 分)以上、中程度の複雑さのアプリで 300 秒(5 分)以上に設定することをおすすめします。タイムアウトのデフォルト値は、Android Studio と Google Developer Console からテストを実行した場合は 300 秒(5 分)、gcloud コマンドラインからテストを実行した場合は 1,500 秒(25 分)です。

Robo スクリプトによる詳細な制御

時には、テストに更なる制御が必要な場合があります。たとえば、一般的なユーザー行動経路をテストしたり、ユーザー名やパスワードなどの特定の UI 入力を表示したいときなどです。これには、Robo スクリプトが役立ちます。

Robo スクリプトを使用すると、アプリ内のワークフローの操作手順を記録し、記録した内容を Firebase コンソールにアップロードして、Robo テスト内で実行することができます。スクリプトを添付した状態で Robo テストを実行すると、Robo はまずスクリプトに記述されたアクションを実行してから、通常どおりアプリを調べます。

Android Studio の Firebase ツールを使用して、Robo スクリプトを開始します。

  1. Android Studio を開きます。
  2. メインメニューで、[ツール] > [Firebase] を選択します。
  3. [Test Lab] を選択し、[Record Robo Script and use it to Guide Robo Test] をクリックします。
  4. ツールの残りの手順に従って、Robo スクリプトを記録します。
  5. Robo スクリプトを Test Lab にアップロードし、テストを開始します。

Google Play との統合

アルファまたはベータチャネルを使用してアプリの APK ファイルをアップロードして公開するときに、Google Play Console で Robo テストを使用できます。Robo テストは、さまざまな地域の一般的な物理端末で動作し、さまざまなフォーム ファクタとハードウェア構成に対してテストを実行できます。詳しくは、リリース前レポートを使って問題を特定する方法を参照してください。

テスト アカウントのログインと事前定義テキストの入力

Robo テストでは、テスト アカウントのログインに対応しています。また、事前定義したテキストをアプリ内のフィールドに入力することもできます。Robo テストはカスタム ログインやその他の事前定義テキストの入力に、アプリの EditText フィールドを使用します。個々の文字列に対し、Android リソース名を指定して EditText フィールドを識別する必要があります。詳しくは、リソースへのアクセスを参照してください。

ログイン

Robo テストでは、相互排他的な 2 種類の方法によってログインをサポートします。

  • カスタム ログイン: テスト アカウントの認証情報を提供する場合は、Robo テストに入力場所を指示し、その認証情報も提供する必要があります。
  • 自動ログイン: ログイン画面での認証に Google アカウントを使用するアプリの場合は、認証用の Google テスト アカウントが Robo テストで使用されます(カスタム ログイン用のテスト アカウントの認証情報を提供する場合を除く)。

カスタム ログインに使用するテスト アカウントの認証情報を提供するには、次の手順を実行します。

  1. [ディメンションを選択] ページで [詳細設定を表示] を選択します。
  2. [テスト アカウント認証情報(オプション)] で、ユーザー名とパスワードのリソース名、テスト アカウントのユーザー名とパスワードを入力します。

事前定義テキストの入力

アプリで使用するその他のテキスト フィールドに、カスタム テキストを入力することもできます。追加フィールドにテキスト入力を指定するには、次の手順を実行します。

  1. [ディメンションを選択] ページで [詳細設定を表示] を選択します。
  2. [その他の項目(オプション)] で、1 つ以上のリソース名と、該当のテキスト フィールドに入力する文字列を指定します。

テストには、アプリでサポートされているディープリンクを 3 つまで提供できます。ディープリンクは Android ACTION_VIEW インテントとしてアプリに発行されているため、各リンクはアプリ内のインテント フィルタと一致している必要があります。

ディープリンクが 1 つ以上提供されている場合、アプリはまず(ACTION_MAIN インテントを使用して)通常どおり起動され、指定されたタイムアウトまでクロールされます。メインクロール後、各ディープリンクはさらに 30 秒間ずつクロールされます。

アプリのライセンス サポート

Test Lab は、Google Play が提供するアプリ ライセンス サービスを使用するアプリをサポートしています。Test Lab でアプリをテストする際にライセンスを確認するには、アプリを Play ストアの製品版チャネルに公開する必要があります。Test Lab を使用してアルファまたはベータチャネルでアプリをテストするには、アプリを Test Lab にアップロードする前にライセンス チェックを削除します。

既知の問題

Robo テストには、現時点で以下の既知の制限があります。

  • UI フレームワークのサポート。Robo テストは、Android UI フレームワークの UI 要素(ViewViewGroup オブジェクトを含み WebView オブジェクトは含まない)を使用するアプリにしか対応していません。Robo テストを使用して、他の UI フレームワークを使用するアプリ(Unity ゲームエンジンを使用するアプリを含む)を実行する場合、テストは最初の画面を調べただけで終了することがあります。
  • ログイン キャプチャ。Robo テストは、ログイン用の認証情報に加えて、その他のユーザー操作(キャプチャの入力など)を必要とするログイン画面を迂回することはできません。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。