このたび、Developer Device Platform(DDP)の gcloud beta device-run
コマンドライン インターフェースのプレビュー版を発表いたします。これは、gcloud
firebase test CLI の機能強化版です。
Developer Device Platform の gcloud beta device-run CLI
を使用すると、物理デバイスと仮想デバイスの両方で、デバイス上の自動化テストとインストルメンテーション
テストを簡単に実行できます。プレビュー リリースでは、Android Instrumentation と iOS
XCTest がサポートされています。手順については、
デバイス実行の概要をご覧ください。
概要と利点
Firebase Test Lab から Developer Device Platform(DDP)に切り替えることで、特にコスト削減、テスト実行速度、高度なデバッグ、AI ドリブン ワークフローの組み込みサポートの面で、いくつかの大きなメリットが得られます。
クラウドでモバイルテストを実行するデベロッパーは、さまざまな構成モデル(Firebase Test Lab)を使い分けたり、追加のパイプラインとツールラッパー レイヤ(Flank)を維持したりする必要があります。
Developer Device Platform の gcloud beta device-run CLI は、これらの機能を Google Cloud CLI のコアに直接統合します。物理デバイスと仮想デバイスの両方でテストを予測可能かつ効率的に実行できる、より堅牢で宣言型のスケーラブルなバックエンド インターフェースを提供します。
DDP が Firebase Test Lab よりも優れたプラットフォームである主な機能と機能は次のとおりです。
高度なスマート シャーディング
Firebase Test Lab は単一実行のタイミング データに依存してテストをシャーディングしますが、DDP のスマート シャーディングははるかにインテリジェントです。
- 30 日間の過去のデータ: DDP は最大 30 日間の実行履歴を分析して、テストを安定した最適化されたシャードに分散します。
- デバイス固有の期間のトラッキング: DDP は、すべてのデバイスで汎用的なプラットフォームの平均を使用するのではなく、 特定のデバイスモデルごとにテスト実行時間をトラッキングします。
- Orchestrator のオーバーヘッド モデリング: DDP は、テスト インスタンスごとに Android Test Orchestrator の起動オーバーヘッドを考慮し、シャードが目標期間を 超えないようにします。
きめ細かく費用対効果の高い再試行
Test Lab では、シャード内の単一のテストケースが失敗した場合、シャード全体(数十のテスト)を再試行する必要があるため、実行時間と請求額の両方が増加します。DDP には、非常に効率的な再試行メカニズムが導入されています。
- テストケース レベルのターゲット再試行: シャード内の特定の 失敗したテストケースをのみ分離して再試行します。
- 不安定なテストのシーケンシャル再試行: 不安定なテストの再試行は、デフォルトでは シーケンシャルに実行されます(Test Lab のように同時には実行されません)。これをテストケース レベルの再試行と組み合わせることで、テスト実行の合計回数が大幅に削減され、デバイスの請求額を大幅に削減できます。
Android テストの高度なサポート
DDP は、Test Lab テスト API の長年の制限に対処します。
- テスト APK のみ(ダミーアプリなし): Test Lab では、自己インストルメンテーション テストを実行するためにダミーアプリ が必要でした。DDP では、テスト APK のみを使用してインストルメンテーション テストを実行できます。
- シャードのタイムアウトの延長: DDP は、 単一のインストルメンテーション テスト シャードの最大実行時間を、Test Lab の 45 分から 3 時間に延長します。
- __複数の Orchestrator__: DDP は、複数の Android Test Orchestrator バージョンをサポートしています。
- __C++ バイナリの組み込みサポート__: DDP は、Android C++ バイナリの実行をサポートしています。
デバイス操作の強化と高度なデバッグ
DDP は、Test Lab で利用可能なものよりも深いデバイス上の操作と、はるかに豊富なデバッグ アーティファクトを提供します。
- __仮の現在地情報__: DDP は、デバイスの GPS 座標のモックをサポートしています。
- ApkSets のサポート: デベロッパーは、ApkSets(.
apksファイル)をリモート デバイスに直接インストールできます。 - 高度なデバッグ: DDP は、重要なシステムログとデバッグ
情報(
dumpsysやbugreportなど)をデベロッパーに直接公開します。
高度にスケーラブルなデバイス カタログ
DDP は、Test Lab の厳格で重い環境カタログを、完全に再設計されたデバイス カタログ API に置き換えます。
- サーバーサイド フィルタリング: デベロッパーがサーバーサイドでデバイスをフィルタできるようにすることで、クエリを高速化し、ペイロードのレイテンシを短縮します。
- リアルタイムの可用性データ: DDP は、リアルタイムのデバイス可用性情報をデバイスランに直接提供するため、高可用性デバイスを選択してキューの待ち時間を短縮できます。これは、Test Lab にはない機能です。
移行パスの選択
AI を使用して移行を自動化する
この移行をスムーズに行うために、専用の翻訳エージェント
スキル: migrating-device-runを開発しました。
Antigravity、Claude Code、 Codexなどの AI コーディングエージェントを使用している場合は、カスタム テストスクリプトを簡単に翻訳できます。移行スキル スキーマの URL をコピー して、こちらの手順に沿って AI アシスタント ワークスペースに貼り付けます。
移行プロンプト テンプレート
You are an expert migration assistant. I want to migrate my test command and
configuration to the new `gcloud beta device-run` command format.
Use this migration guideline as your ruleset:
https://docs.cloud.google.com/developer-device-platform/device-run/migrate/migration-skill.md.txt
Translate the following command and configuration to the new `gcloud beta
device-run` CLI: (Insert your raw Firebase Test / Flank YAML or bash script
here.)
手動で移行する
コマンドとフラグの翻訳に沿って、Firebase Test Lab から DDP に手動で移行します。移行の準備をする際は、次の構造上の違いに注意してください。
- リソース中心の CLI アーキテクチャ:
gcloud beta device-runは、 最新の<resource> <verb>コマンドパターンを 3 つのメイン リソース グループで採用しています:devices: デバイス カタログのインベントリと 包括的なデバイスの詳細に CLI から直接アクセスできます。これにより、断片化された従来のfirebase test android/ios models/versions/localesコマンドが置き換えられます。software-versions: サポートされているソフトウェア バージョンに CLI から直接アクセスできます (Xcode や Android Test Orchestrator のバージョンなど)。これにより、従来のfirebase test ios xcode-versions listが置き換えられます。sessions: ターミナルで直接、エンドツーエンドのセッション ライフサイクル管理を行います(sessions submit instrumentation、sessions submit xctest、sessions wait、sessions describe [--full]、sessions list、 およびsessions cancelなど)。
- サブコマンド構造: テストタイプは標準化され、タイプフラグを使用するのではなく、クリーンなサブコマンドとして
sessions submitの下にネストされます。- DDP:
gcloud beta device-run sessions submit instrumentation(Android)またはgcloud alpha device-run sessions submit xctest(iOS) - Test Lab:
gcloud firebase test android run --type=instrumentation(Android)またはgcloud firebase test ios run --type=xctest(iOS)
- DDP:
- 複数形と統合されたアプリ: 標準 APK と補助 APK は、複数形の
--appsフラグリスト(例:--apps=app.apk,helper.apk)--app--additional-apksに統合されます。 - 構造化されたディクショナリとリストの引数: カンマ区切りのファイル
または環境リストが、構造化された CLI ディクショナリとリスト形式(
--other-files-to-push KEY=VALUE、--additional-test-options KEY=VALUE、--paths-to-pull、--test-targets)に置き換えられました。 - シャーディングと再試行の統合制御: Uniform Sharding
と Smart Sharding のシームレスなサポート、並列再試行
(
--flaky-test-parallel-retry、--flaky-test-retry-level)、ランタイム 診断(--dumpsys、--bugreport、--video)。 - 非同期実行:
gcloud beta device-runは非同期実行をサポートしているため、完了を待たずにテストを実行できます。gcloud beta device-run sessions wait <SESSION_ID>を使用して完了を待ちます。 - 宣言型 YAML 構成(
--flags-file): Flank から移行するチームで、シェル スクリプト文字列よりもバージョン管理された YAML ファイルを優先する場合は、gcloudの汎用--flags-file=device-run-flags.yamlサポートを使用できます。
次のステップ
- クイックスタートに沿って Developer Device Platform を設定します。
- デバイス カタログで 利用可能なすべてのデバイスを確認します。
- デバイス実行について学習して、 テストの実行を開始します。
- コマンドとフラグの翻訳にアクセスして、Test Lab と Flank のフラグと DDP の マッピングを確認します。