Test Lab のトラブルシューティング & よくある質問

このページでは、Firebase Test Lab でのテスト実行に関するよくある質問と回答を紹介します。既知の問題も記載されています。お探しの情報が見つからない場合や、サポートが必要な場合は、Firebase Slack の #test-lab チャンネルに参加するか、Firebase サポートにお問い合わせください。

トラブルシューティング

Test Lab カタログから大容量のデバイスを選択すると、テストの開始が早くなる場合があります。デバイスの容量が少ない場合、テストの実行に時間がかかることがあります。呼び出したテストの数が、選択したデバイスの容量を大幅に上回る場合、テストの完了に時間がかかることがあります。

デバイスの容量レベルにかかわらず、次の要因によりテストに長時間かかる場合があります。

  • トラフィック。デバイスの可用性とテスト速度に影響します。
  • デバイスやインフラストラクチャの障害(いつでも発生する可能性があります)。Test Lab で報告されているインフラストラクチャを確認するには、Firebase ステータス ダッシュボードをご覧ください。

Test Lab のデバイスの容量については、Android および iOS のデバイスの容量情報をご覧ください。

有意なテスト結果が得られないことは、テスト実行のキャンセルやインフラストラクチャ エラーが原因でよく起こります。

インフラストラクチャ エラーは、ネットワーク エラーや予期しないデバイスの動作など、Test Lab の内部の問題が原因で発生します。Test Lab は有意な結果が得られないとのレポートを返す前に、インフラストラクチャ エラーが発生するテスト実行を内部で複数回再試行します。ただし、failFast を使用してこれらの再試行を無効にできます。

エラーの原因を判別するには、次の手順を実施します。

  1. Firebase ステータス ダッシュボードで既知のサービスの停止を確認します。
  2. Test Lab でテストを再試行し、再現可能であることを確認します。

  3. 該当する場合は、別のデバイスまたはデバイスタイプでテストを実行してみてください。

問題が解決しない場合は、Firebase Slack の #test-lab チャンネルTest Lab チームにお問い合わせください。

シャーディングを行うと、指定したシャードの数が Test Lab で使用できるデバイスの数を超えた場合に、テストの実行時間が長くなることがあります。この状況を回避するには、別のデバイスに切り替えてみてください。別のデバイスの選択について詳しくは、 デバイスの容量

テスト リクエストを送信すると、デバイスでテストを実行する準備として、まずアプリの検証、再署名などが行われます。通常、このプロセスは数秒未満で完了しますが、アプリのサイズなどの要因の影響を受ける可能性があります。

アプリの準備が完了すると、テスト実行がスケジュールされ、デバイスがテストを実行できるようになるまでキューに残ります。すべてのテスト実行が終了するまで、マトリックスのステータスは「保留中」になります(テスト実行がキューにあるか、アクティブかは関係ありません)。

テスト実行が完了すると、デバイスからテスト アーティファクトがダウンロードされ、処理を行った後に Cloud Storage にアップロードされます。このステップの所要時間は、アーティファクトの量とサイズに影響されることがあります。

よくある質問

Firebase Test Lab には、デバイスでのテストと Cloud APIs 使用に関する無料割り当てが用意されています。テストの割り当てでは標準の Firebase 料金プランが使用されますが、Cloud APIs の割り当てでは Firebase 料金プランは使用されないことに注意してください。

  • テストの割り当て

    テストの割り当ては、テストの実行に使用されるデバイスの数によって決まります。Firebase Spark プランでは、テストに対する割り当てが固定されています(無料)。Blaze プランでは、時間の経過とともに Google Cloud の使用量が増加した場合、割り当て量を増やすことができます。現在 Spark プランをご利用で、テストの割り当て上限に達した場合は、翌日まで待つか、Blaze プランにアップグレードしてください。すでに Blaze プランをご利用の場合は、割り当ての増加をリクエストできます。詳細については、割り当てのテストをご覧ください。

    テストの割り当て使用量は、Google Cloud コンソールでモニタリングできます。

  • Cloud Testing API の割り当て

    Cloud Testing API には、プロジェクト 1 件の 1 日あたりのリクエスト数と、プロジェクト 1 件の 100 秒あたりのリクエスト数という 2 つの割り当て上限があります。使用状況は Google Cloud コンソールでモニタリングできます。

  • Cloud Tool Results API の割り当て

    Cloud Tool Results API には、プロジェクト 1 件の 1 日あたりのクエリ数と、プロジェクト 1 件の 100 秒あたりのクエリ数という 2 つの割り当て上限があります。使用状況は Google Cloud コンソールでモニタリングできます。

    API の上限の詳細については、Test Lab の Cloud APIs の割り当てをご覧ください。API の割り当てに達した場合:

    • Google Cloud コンソールで直接割り当てを編集して、割り当て上限の引き上げのリクエストを送信してください(ほとんどの上限はデフォルトで最大値に設定されていることに注意してください)。

    • Google Cloud コンソールのリクエスト フォームに記入するか、Firebase サポートにお問い合わせのうえ、API 割り当ての引き上げをリクエストしてください。

バックエンドで、IP 範囲と送信元 IP アドレスを照合することで、トラフィックの発信元が Firebase にホストされているテストデバイスかどうかを判断できます。

Test Lab は VPC-SC では機能しません。そのため、Test Lab の内部ストレージとユーザーの結果バケット間でのアプリとその他のテスト アーティファクトのコピーがブロックされます。

テストにおける不安定な動作を検出するには、 --num-flaky-test-attempts オプションの使用をおすすめします。デフレークの再実行は、通常のテスト実行と同様に、1 日の割り当てに対して課金またはカウントされます。

次の点にご注意ください。

  • 障害が検出されると、テスト実行全体が再び実行されます。失敗したテストケースのみを再試行することはできません。
  • デフレークの再試行は、同時に実行されるようスケジュール設定されますが、トラフィックが使用可能なデバイスの数を超えている場合などには、同時に実行される保証はありません。

これらのアイテムの一部は Google のロードマップに含まれていますが、現在のところ、これらのテスト プラットフォームやアプリ開発プラットフォームのサポートを明言することはできません。

詳細なデバイス情報は API を介して確認できます。これは、describe コマンドを使用して gcloud クライアントからアクセスできます。

gcloud firebase test ios models describe MODEL

Test Lab for iOS では、シャーディングはネイティブにサポートされていません。ただし、Flank クライアントを使用すると、iOS テストケースをシャーディングできます。

これを利用するには、.xctestrun ファイルで OnlyTestIdentifiers キーと値を設定します。詳しくは、xcodebuild.xctestrunman ページをご覧ください。

iOS 18 以降では、結果に動画を表示することはできません。

既知の問題

Robo テストは、ログイン用の認証情報に加えて、その他のユーザー操作(キャプチャの入力など)を必要とするログイン画面を迂回することはできません。

iOS+ 用 Robo テスト(ベータ版)では、Google アカウントによる自動ログインはサポートされていません。