欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

开始使用 Firebase 测试实验室测试 Android

Firebase 测试实验室可让您在一系列设备和配置上测试您的应用。本入门指南为您提供了一个实施路径,并介绍了测试实验室的 Android 产品。

有关测试实验室配额和定价计划的信息,请参阅使用情况、配额和定价

关键概念

当您针对您选择的设备和配置运行测试或一组测试用例时,测试实验室会针对您的应用批量运行测试,然后将结果显示为测试矩阵

设备 × 测试执行 = 测试矩阵

设备
您在其上运行测试的物理或虚拟设备(仅限 Android),例如手机、平板电脑或可穿戴设备。测试矩阵中的设备由设备型号、操作系统版本、屏幕方向和区域设置(也称为地理和语言设置)标识。
测试,测试执行
要在设备上运行的测试(或一组测试用例)。您可以为每台设备运行一个测试,也可以选择对测试进行分片并在不同的设备上运行其测试用例。
测试矩阵
包含测试执行的状态和测试结果。如果矩阵中的任何测试执行失败,则整个矩阵都会失败。

第 1 步:准备您的测试以上传到测试实验室

可用的测试类型

您可以使用测试实验室运行以下测试。请注意,所有测试类型都限制为在物理设备上运行 45 分钟,在虚拟设备上运行 60 分钟。任何未捕获的异常都会导致测试失败。

  • 仪器测试仪器单元测试:您使用EspressoUI Automator框架编写的测试。通过此测试,您可以明确断言应用程序的状态,以使用AndroidJUnitRunnerAPIs验证功能是否正确。

  • Robo 测试:一种自动化测试,它分析您的应用程序的 UI,然后通过模拟用户活动有条不紊地探索它,而无需您编写任何代码。访问关于 Robo 测试了解更多信息。

  • 游戏循环测试:使用“演示模式”模拟玩家在游戏应用程序中的操作的测试。这是一种快速且可扩展的方式来验证您的游戏是否对用户表现良好。当您选择运行游戏循环测试时,您可以:

    • 为您的游戏引擎编写原生测试

    • 避免为不同的 UI 或测试框架编写相同的代码

    • 可以选择创建多个循环以在单个测试执行中运行(访问关于游戏循环测试以了解更多信息)。您还可以使用标签组织循环,以便跟踪它们并重新运行特定循环。

    有关使用测试实验室运行此测试的说明,请参阅运行游戏循环测试

运行测试的工具

您可以选择以下工具来运行测试:

  • 推荐给初次使用的用户:Firebase 控制台可让您上传应用并从网络浏览器启动测试。有关使用此工具运行测试的说明,请参阅使用 Firebase 控制台进行测试。

  • Android Studio 集成让您可以在不离开开发环境的情况下测试您的应用。有关使用此工具运行测试的说明,请参阅使用 Android Studio进行测试。

  • gcloud 命令行界面使您能够以交互方式从命令行运行测试,并且非常适合将脚本作为自动化构建和测试过程的一部分。有关使用此工具运行测试的说明,请参阅使用 gcloud CLI进行测试。

当您使用 alpha 或 beta 通道将应用的 APK 文件上传并发布到 Play 商店时,您还可以通过测试实验室免费测试您的应用。有关详细信息,请参阅使用发布前报告来识别问题Robo 测试

第 2 步:选择您的测试设备

测试实验室支持对在 Google 数据中心安装和运行的多种品牌和型号的 Android 设备进行测试。在测试实验室中对设备进行测试可帮助您检测在 Android Studio 中使用模拟器测试您的应用时可能不会出现的问题。要了解更多信息,请参阅可用设备。

第 3 步:查看测试结果

无论您如何启动测试,您的所有测试结果都由测试实验室管理,并且可以在线查看。

测试结果摘要会自动存储,并可在 Firebase 控制台中查看。它包含与您的测试最相关的数据,包括特定于测试用例的视频、屏幕截图、通过、失败或得到不稳定结果的测试数量等等。

原始测试结果包含测试日志和应用程序故障详细信息,并自动存储在 Google Cloud 存储桶中。如果您指定存储桶,则您需要承担存储成本。如果您不指定存储桶,Test Lab 会免费为您创建一个。

有关更多详细信息,请参阅分析 Firebase 测试实验室结果。

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

设备清理

Google 非常重视您的应用数据的安全性。我们遵循行业标准的最佳实践,在每次测试运行后删除应用数据并重置物理设备的系统设置,以确保它们准备好运行新的测试。对于我们可以使用自定义恢复映像刷新的设备,我们更进一步,在测试运行之间刷新这些设备。

对于测试实验室使用的虚拟设备,设备实例在使用后会被删除,这样每次测试运行都会使用一个新的虚拟设备实例。


测试实验室和 Google Play 服务

测试实验室设备通常在最新版本的 Google Play 服务 SDK 上运行,但有些设备可能需要在新版本的 SDK 发布后几天才能更新。请注意,您可能会遇到与某些设备的兼容性问题。

允许测试设备访问私有后端服务器

一些移动应用程序需要与私有后端服务通信才能在测试期间正常运行。如果您的后端服务器受防火墙规则保护,您可以通过使用下面的 IP 地址块打开通过防火墙的路由来允许测试实验室的物理和虚拟设备访问。

移动广告

测试实验室提供了一个可扩展的基础架构,可以自动执行应用程序测试,不幸的是,这种功能可能会被旨在产生欺诈性广告收入的恶意应用程序滥用。

要缓解此问题:

  • 如果您使用或与第三方数字广告提供商(例如广告网络或需求方平台)合作,建议您在应用开发和测试期间使用测试广告而不是真实广告。

  • 如果您必须在测试中使用真实广告,请通知与您合作的数字广告提供商使用下面的 IP 地址块过滤掉测试实验室产生的收入和所有相应流量。您无需通知 Google 旗下的广告提供商;测试实验室会为您解决这些问题。

测试实验室设备使用的 IP 地址

测试实验室设备生成的所有网络流量均源自以下IP 地址块。您还可以使用gcloud CLI 中的gcloud beta firebase test ip-blocks list命令访问此列表。该列表平均每年更新一次。

平台和设备类型CIDR IP 地址块
Android 和 iOS 物理设备

70.32.128.0/19(添加 02-2022)

108.177.6.0/23

108.177.18.192/26(添加 02-2022)

108.177.29.64/27(扩展 02-2022)

108.177.31.160/27(添加 02-2022)

199.36.156.8/29(添加 02-2022)

199.36.156.16/28(添加 02-2022)

209.85.131.0/27(添加 02-2022)

2001:4860:1008::/48(添加 02-2022)

2001:4860:1018::/48(添加 02-2022)

2001:4860:1019::/48(添加 02-2022)

2001:4860:1020::/48(添加 02-2022)

2001:4860:1022::/48(添加于 02-2022)

安卓虚拟设备

34.68.194.64/29(添加 11-2019)

34.69.234.64/29(添加 11-2019)

34.73.34.72/29(添加 11-2019)

34.73.178.72/29(添加 11-2019)

34.74.10.72/29(添加 02-2022)

34.136.2.136/29(添加 02-2022)

34.136.50.136/29(添加 02-2022)

34.145.234.144/29(添加 02-2022)

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(添加 7-2019)

35.245.243.240/29(添加 02-2022)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

不再使用设备 IP 块

74.125.122.32/29(删除 02-2022)

216.239.44.24/29(删除 02-2022)