Firebase Test Lab 概览

利用 Firebase Test Lab,您可以在一系列设备上以及各种配置下测试自己的应用,有助于您更好地了解其在用户手中的表现。为方便进行如此广泛的测试,Test Lab 采用批量运行方式(我们称之为测试矩阵)。在每个矩阵中,系统都会针对多种设备配置组合测试您的应用。如需了解 Test Lab 配额和结算方案,请参阅使用情况、配额和价格

设备 × 测试作业 = 测试矩阵

设备
您用来运行测试的设备,例如手机、平板电脑或穿戴式设备。测试矩阵中的设备由设备型号、操作系统版本、语言区域和屏幕方向标识。
测试作业
在设备上运行的测试。在典型的测试矩阵中,每个选定的设备都有一个测试作业。
测试矩阵
一组测试作业。如果矩阵中的任何测试执行失败,则整个矩阵也会失败。

您可以选择如何开始测试应用,有如下方式:

  • 借助 Android Studio 集成,您可以直接在自己的开发环境中测试应用。
  • 借助 gcloud 命令行界面,您可以使用命令行以交互方式运行测试,并且此命令行界面也非常适合以脚本方式在自动构建和测试流程中运行测试。
  • 在 Firebase 控制台中使用 Test Lab 界面,您可以上传一个应用二进制文件,然后从任意位置启动测试。

当您将应用的 Alpha 或 Beta 版 APK 文件上传并发布到 Play 商店时,也可以使用 Test Lab 对其进行测试。如需了解详情,请参阅利用发布前测试报告发现问题Robo 测试

选择测试方法

您可以使用 Test Lab 来验证应用的用户体验的稳定性,以及您的应用在一系列设备上的兼容性。

我们为您提供了两种测试方法来帮助您测试应用:您可以运行插桩 (Instrumentation) 测试和 Test Lab Robo 测试

插桩测试

插桩测试是您或您的团队专为测试您的应用而编写的测试(使用 EspressoUI Automator 2.0 Android 测试框架)。插桩测试在实体设备上的运行时长上限是 45 分钟,而在虚拟设备上是 60 分钟。系统会为在该时间段内完成执行的所有测试用例提供测试结果。如需了解如何运行插桩测试,请参阅 插桩测试

在编写插桩测试时,您需要再创建一个 APK 模块,然后将该模块与您的应用的 APK 模块一起上传到 Test Lab。如需了解如何创建测试 APK,请参阅测试您的应用

Robo 测试

即使您没有为自己的应用编写任何插桩测试,也可以使用 Robo 测试,通过模拟用户操作来测试您的应用。 如需了解详情,请参阅 Robo 测试

游戏循环测试

为了支持游戏应用测试,Test Lab 现在加入了对“演示模式”的支持,在该模式下游戏应用可以一边运行一边模拟玩家的操作。 此模式可以包括多个循环(或场景),您可以使用标签对这些循环(或场景)进行逻辑整理,以便将相关的循环组合在一起运行。如需了解详情,请参阅游戏循环测试

选择设备类型

Test Lab 支持在安装和运行于 Google 数据中心内的多个品牌和型号的 Android 设备上进行测试。在真机设备上进行测试可帮助您检测在使用 Android 模拟器测试应用时未发现的问题。如需了解详情,请参阅可供使用的设备

查看测试结果

无论您如何发起测试,所有测试结果均由 Test Lab 管理,并且可在线查看。测试结果包括测试日志和任何应用故障的详细信息。对于 Robo 测试,还提供有视频和屏幕截图。如需了解详情,请参阅分析 Firebase Test Lab 结果

Android Studio 启动测试时,您还可以在自己的开发环境中查看测试结果。

Test Lab 和 Google Play 服务

Test Lab 设备通常会运行最新版本的 Google Play 服务。 但是,由于设备和配置的数量很多,Test Lab 有时需要几天时间才能在 Google Play 服务发布新版本后完成设备更新。 为确保您的测试能够正常运行,请检查您的应用,其使用的 Google Play 服务 SDK 不应高于下面列出的版本。

当前支持的 Google Play 服务 SDK:11.8.0

Test Lab 和移动广告

如果您是使用数字广告服务商(例如广告网络、需求方平台)的服务或与其合作的应用开发者,或者您是数字广告服务商:

Test Lab 为开发者提供可扩展的应用测试基础架构,实现应用测试自动化。遗憾的是,此功能可能会被专为产生欺诈性广告收入而设计的恶意应用所滥用。

为了缓解这一问题:

  • 应用开发者应通知所有合作的数字广告服务商,以滤除测试服务商(包括 Test Lab)的设备所产生的收入和所有相应的流量。

  • 数字广告提供商可以通过过滤来自以下 IP 地址块(请注意,您也可以从 gcloud CLI 中使用 gcloud beta firebase test ip-blocks list 命令访问此列表)的流量,来过滤由 Test Lab 生成的广告收入和所有对应流量:

平台和设备类型 CIDR IP 地址段
Android 和 iOS 实体设备

108.177.6.0/23

70.32.147.112/28(添加时间为 2020 年 3 月)

74.125.122.32/29(添加时间为 2020 年 4 月)

108.177.29.80/28(添加时间为 2020 年 4 月)

216.239.44.24/29(添加时间为 2020 年 4 月)

Android 虚拟设备

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 月)

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 月)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

设备清理

Google 非常重视您的应用数据的安全。对于 Test Lab 所使用的实体设备,我们都会遵循行业标准的最佳做法,在每次测试运行完成之后从设备中移除应用数据,确保其准备好运行新的测试。对于那些可以使用自定义恢复映像进行快速清理的设备,我们会更进一步,在两次测试之间快速清理这些设备。

对于 Test Lab 所使用的虚拟设备,我们会在使用设备实例之后将其删除,这样每次测试运行都会使用一个新的虚拟设备实例。