利用 Firebase Test Lab,您可以在一系列设备上以及各种配置下测试您的应用。本入门指南为您提供了一种实现方法,此外还简单介绍了 Test Lab 的 Android 产品。
如需了解 Test Lab 配额和定价方案,请参阅用量、配额和价格。
主要概念
当您针对所选的设备和配置运行一项测试或一组测试用例时,Test Lab 会批量为您的应用运行测试,然后将结果显示为一个测试矩阵。
设备 × 测试作业 = 测试矩阵
- 设备
- 运行测试的实体设备或虚拟设备(仅限 Android),例如手机、平板电脑或穿戴式设备。测试矩阵中的设备由设备型号、操作系统版本、屏幕方向和语言区域(也称为地理位置和语言设置)标识。
- 测试、测试作业
- 需要在设备上运行的一项测试(或一组测试用例)。您可以在每个设备上运行一项测试,也可以视需要对测试进行分片,并在不同的设备上运行其测试用例。
- 测试矩阵
- 测试矩阵中包含测试作业的状态和测试结果。只要矩阵中有任何测试作业失败,整个矩阵都会失败。
第 1 步:准备测试以便上传到 Test Lab
可用的测试类型
您可以使用 Test Lab 运行以下测试。请注意,所有测试类型在实体设备上的运行时长上限是 45 分钟,而在虚拟设备上是 60 分钟。任何未捕获的异常都将导致测试失败。
插桩测试或插桩单元测试:使用 Espresso 或 UI Automator 框架编写的测试。通过这种类型的测试,您可以使用 AndroidJUnitRunnerAPIs 对应用的状态做出明确断言,从而验证其功能正常与否。
如需了解如何准备您的测试以在 Test Lab 中运行,请访问运行插桩测试。
有关如何构建插桩测试的说明,请参阅 Android 开发者文档。
Robo 测试:这种自动化测试会分析应用的界面,然后通过模拟用户活动来有条不紊地对其进行探索,您完全不需要编写代码。如需了解详情,请参阅关于 Robo 测试。
游戏循环测试:此类测试使用“演示模式”在游戏应用中模拟玩家操作。这是一种快速、可伸缩的方式,用于验证您的游戏是否能为用户提供优质体验。选择运行游戏循环测试时,您可以做到以下几点:
为您的游戏引擎编写原生测试
免于为不同的界面或测试框架编写相同的代码
视需要创建能在单个测试作业中运行的多个循环(如需了解详情,请参阅游戏循环测试简介)。 您还可以使用标签来整理循环,以便于跟踪循环以及重新运行特定循环。
如需了解如何通过 Test Lab 运行这种类型的测试,请参阅运行游戏循环测试。
运行测试所需的工具
您可以选择使用以下工具运行测试:
对新用户的建议:借助 Firebase 控制台,您可以上传应用并通过网络浏览器启动测试。请参阅通过 Firebase 控制台进行测试,了解如何使用此工具运行测试。
借助 Android Studio 集成,您可以直接在自己的开发环境中测试应用。如需了解如何使用此工具运行测试,请参阅通过 Android Studio 进行测试。
借助 gcloud 命令行界面,您可以使用命令行以交互方式运行测试,并且此命令行界面也非常适合以脚本方式在自动构建和测试流程中运行测试。如需了解如何使用此工具运行测试,请参阅通过 gcloud CLI 进行测试。
使用 Alpha 或 Beta 渠道上传应用的 APK 文件并将其发布到 Play 商店时,您也可以免费使用 Test Lab 对其进行测试。如需了解详情,请参阅利用发布前测试报告发现问题和 Robo 测试。
第 2 步:选择测试设备
Test Lab 支持在安装和运行于 Google 数据中心内的多个品牌和型号的 Android 设备上进行测试。在 Test Lab 中的设备上进行测试可帮助您检测到使用 Android Studio 中的模拟器测试应用时可能不会出现的问题。如需了解详情,请参阅可供使用的设备。
第 3 步:查阅测试结果
无论您通过何种方式发起测试,所有测试结果均由 Test Lab 管理,并且可供在线查看。
系统会自动存储测试结果摘要,您可以在 Firebase 控制台中查看这些摘要。其中包含与您的测试最为相关的数据,包括特定测试用例的视频、屏幕截图、通过的测试数量、失败的测试数量、结果不稳定的测试数量等。
原始测试结果包含测试日志和应用故障详情,这些信息会自动存储在 Google Cloud 存储桶中。如果您指定了一个存储桶,则需要支付相应的存储费用。如果您未指定存储桶,Test Lab 会为您免费创建一个。
如需了解详情,请参阅分析 Firebase Test Lab 结果。
从 Android Studio 启动测试时,您还可以在自己的开发环境中查看测试结果。
设备清理
Google 非常重视您的应用数据的安全。我们遵循行业标准的最佳实践,每次测试运行完毕之后都会从实体设备中移除应用数据并重置这些实体设备的系统设置,确保其准备好运行新的测试。对于那些可以使用自定义恢复映像进行快速清理的设备,我们会多采取一个步骤,即在两次测试运行之间快速清理这些设备。
对于 Test Lab 所使用的虚拟设备,我们会在使用设备实例之后将其删除,这样每次测试运行都会使用一个新的虚拟设备实例。
Test Lab 和 Google Play 服务
Test Lab 设备通常会运行最新版本的 Google Play 服务 SDK,但在新版 SDK 发布时,部分设备可能要几天后才能更新完毕。请注意,在使用某些设备时,您可能会遇到兼容性问题。
允许测试设备访问专用后端服务器
某些移动应用需要与专用后端服务通信,才能在测试期间正常运行。如果您的后端服务器受防火墙规则保护,您可以使用下方的 IP 地址段以通过防火墙打开路由,从而允许 Test Lab 的实体设备和虚拟设备访问后端服务器。
移动广告
Test Lab 提供了一个可伸缩的基础架构,可自动执行应用测试。遗憾的是,此功能可能会被专为产生欺诈性广告收入而设计的恶意应用所滥用。
为了缓解这一问题:
如果您使用第三方数字广告服务商(例如广告网络或需求方平台)的服务或与其合作,我们建议您在应用开发和测试过程中使用测试广告,而不是真实的广告。
如果必须在测试中使用真实的广告,请通知与您合作的数字广告服务商,以使用下方的 IP 地址段滤除 Test Lab 产生的收入和所有对应的流量。您无需通知 Google 拥有的广告提供商;Test Lab 会为您代劳。
Test Lab 设备使用的 IP 地址
Test Lab 设备生成的所有网络流量均源自以下 IP 地址段。您还可以使用 gcloud CLI 中的 gcloud beta firebase test ip-blocks list
命令访问此列表。该列表平均每年更新一次。
平台和设备类型 | CIDR IP 地址段 |
---|---|
Android 和 iOS 实体设备、Arm 虚拟设备 |
70.32.128.0/19(2022 年 2 月添加) 108.177.6.0/23 108.177.18.192/26(2022 年 2 月添加) 108.177.29.64/27(2022 年 2 月扩展) 108.177.31.160/27(2022 年 2 月添加) 199.36.156.8/29(2022 年 2 月添加) 199.36.156.16/28(2022 年 2 月添加) 209.85.131.0/27(2022 年 2 月添加) 2001:4860:1008::/48(2022 年 2 月添加) 2001:4860:1018::/48(2022 年 2 月添加) 2001:4860:1019::/48(2022 年 2 月添加) 2001:4860:1020::/48(2022 年 2 月添加) 2001:4860:1022::/48(2022 年 2 月添加) 70.32.128.48/28(2024 年 4 月添加) |
Android 虚拟设备(非 Arm) |
34.68.194.64/29(2019 年 11 月添加) 34.69.234.64/29(2019 年 11 月添加) 34.73.34.72/29(2019 年 11 月添加) 34.73.178.72/29(2019 年 11 月添加) 34.74.10.72/29(2022 年 2 月添加) 34.136.2.136/29(2022 年 2 月添加) 34.136.50.136/29(2022 年 2 月添加) 34.145.234.144/29(2022 年 2 月添加) 35.192.160.56/29 35.196.166.80/29 35.196.169.240/29 35.203.128.0/28 35.234.176.160/28 35.243.2.0/27(2019 年 7 月添加) 35.245.243.240/29(2022 年 2 月添加) 199.192.115.0/30 199.192.115.8/30 199.192.115.16/29 |
设备 IP 块不再使用 |
74.125.122.32/29(2022 年 2 月移除) 216.239.44.24/29(2022 年 2 月移除) |