我们非常高兴地宣布,开发者设备平台 (DDP) 中推出了 gcloud beta device-run
命令行界面的预览版,这是对 gcloud
firebase test CLI 的增强。
gcloud beta device-run CLI 简化了在设备(包括实体设备和虚拟设备)上运行自动化测试和插桩测试的过程,并使其现代化。在预览版中,Android 插桩测试 和 iOS XCTest 均受支持。如需了解相关说明,请参阅
设备运行概览。
概览和优势
与 Firebase Test Lab 相比,开发者设备平台 (DDP) 具有多项主要优势,尤其是在节省费用、测试执行速度、高级调试和对 AI 驱动型工作流的内置支持方面。
在云端运行移动测试的开发者必须在不同的配置模型 (Firebase Test Lab) 之间切换,或者维护额外的流水线和工具封装层 (Flank)。
开发者设备平台中的 gcloud beta device-run CLI 直接将这些功能合并到核心 Google Cloud CLI 中。它提供了一个更可靠、声明式且可伸缩的后端界面,可在实体设备和虚拟设备上以可预测且高效的方式运行测试。
与 Firebase Test Lab 相比,DDP 具有以下主要功能和特性,使其成为更出色的平台:
高级智能分片
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++ 二进制文件。
丰富的设备互动和高级调试
与 Test Lab 中提供的功能相比,DDP 提供了更深入的设备上互动和更丰富的调试工件:
- 模拟位置:DDP 支持模拟设备 GPS 坐标。
- ApkSets 支持:开发者可以直接将 ApkSets(.
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)
- 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。 - 统一的分片和重试控制:无缝支持统一分片
和智能分片,以及并行重试
(
--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 文件而不是 shell 脚本字符串的团队可以 使用gcloud的通用--flags-file=device-run-flags.yaml支持。
后续步骤
- 使用我们的快速入门设置 Developer Device Platform。
- 浏览我们的设备目录, 查找所有可用设备。
- 了解设备运行, 开始运行测试。
- 访问我们的 命令和标志翻译,查看 Test Lab 和 Flank 标志到 DDP 的 映射。