從 Firebase Test Lab 遷移至開發人員裝置平台

我們很高興宣布,Developer Device Platform (DDP) 的 gcloud beta device-run 指令列介面推出預先發布版,這是 gcloud firebase test CLI 的強化功能。

gcloud beta device-run CLI 可簡化並現代化在實體和虛擬裝置上執行自動化和檢測設備測試。預先發布版支援 Android 檢測和 iOS XCTest。如需操作說明,請參閱「Device Run 總覽」。

總覽與優點

從 Firebase Test Lab 改用 Developer Device Platform (DDP) 有幾項重大優勢,特別是節省成本、測試執行速度、進階偵錯,以及內建支援 AI 導向工作流程。

在雲端執行行動裝置測試的開發人員,必須在不同設定模型 (Firebase Test Lab) 之間切換,或維護額外的管道和工具包裝層 (Flank)。

開發人員裝置平台中的 gcloud beta device-run CLI 會將這些功能直接併入核心 Google Cloud CLI。提供更強大、宣告式且可擴充的後端介面,可在實體和虛擬裝置上以可預測且有效率的方式執行測試。

DDP 的主要功能和特色,使其成為優於 Firebase Test Lab 的平台,包括:

進階智慧型資料分割

Firebase Test Lab 會根據單次執行的時間資料來分片測試,但 DDP 的 智慧分片功能更聰明:

  • 30 天歷來資料:DDP 最多會分析 30 天的執行記錄,將測試分配到穩定、最佳化的 shard。
  • 追蹤特定裝置的執行時間:DDP 會追蹤特定裝置型號的測試執行時間,而非使用所有裝置的一般平台平均值。
  • Orchestrator 負擔模型:DDP 會考量每個測試執行個體的 Android Test Orchestrator 啟動負擔,確保 shard 不會超過目標時間長度。

精細且符合成本效益的重試

在 Test Lab 中,如果分片內的單一測試案例失敗,就必須重試整個分片 (可能包含數十項測試),這會增加執行時間和帳單費用。DDP 導入高效率的重試機制:

  • 指定測試案例層級重試:僅隔離並重試 shard 內失敗的特定測試案例。
  • 依序重試不穩定測試:依預設,系統會依序重試不穩定測試 (而非像 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 座標。
  • 支援 ApkSet:開發人員可以直接在遠端裝置上安裝 ApkSet (.apks 檔案)。
  • 進階偵錯:DDP 會直接向開發人員提供重要的系統記錄和偵錯資訊,包括 dumpsys 和 bugreport。

高擴充性的裝置目錄

DDP 採用全新設計的裝置目錄 API,取代 Test Lab 僵化且繁重的環境目錄:

  • 伺服器端篩選:開發人員可在伺服器端篩選裝置,加快查詢速度並縮短酬載延遲時間。
  • 即時可用性資料:DDP 會直接向 Device Run 提供即時裝置可用性資訊,方便您選擇高可用性的裝置,避免長時間排隊,這是 Test Lab 完全不具備的功能。

選擇遷移路徑

運用 AI 自動遷移

為確保順利完成這項轉換,我們開發了專屬的翻譯代理程式技能:migrating-device-run。

如果您使用 AI 程式設計代理,例如 Antigravity、Claude Code、Codex,可以輕鬆翻譯自訂測試指令碼。只要複製遷移技能結構定義的網址,然後按照這裡的操作說明,貼到 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> 指令模式,涵蓋三大資源群組:
    • 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)
  • 複數化和合併的應用程式:標準和補充 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。
  • 統一分片和重試控制項:無縫支援統一分片和智慧分片,以及平行重試 (--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 支援。

後續步驟

  1. 請參閱快速入門導覽課程,瞭解如何設定 Developer Device Platform。
  2. 如要查看所有可用的裝置,請瀏覽裝置目錄。
  3. 瞭解 Device Run,開始執行測試。
  4. 請參閱指令和旗標翻譯,瞭解 Test Lab 和 Flank 旗標與 DDP 的對應關係。