Firebase Test Lab 使用入门 (iOS)

利用 Firebase Test Lab,您可以在一系列设备上以各种配置测试您的应用质量。本指南简要介绍了 Test Lab 的关键概念、iOS 相关服务,以及有关如何开始测试的说明。

如需了解 Test Lab 配额和定价方案,请参阅用量、配额和价格

主要概念和术语

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

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

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

第 1 步:准备测试以便上传到 Test Lab

您可以使用 Test Lab 运行以下测试。请注意,不论测试类型如何,所有测试在实体设备上的运行时长上限都是 45 分钟,任何未捕获的异常都将导致测试失败。

  • XCTest(包括 XCUITest)测试:您使用 XCTest 框架编写的单元测试。如需了解如何修改 XCTest 测试以通过 Test Lab 运行此类测试,请参阅创建 XCTest 测试

  • 游戏循环测试:此类测试使用“演示模式”在游戏应用中模拟玩家操作。这是一种快速、可伸缩的方式,用于验证您的游戏是否能为用户提供优质体验。选择运行游戏循环测试时,您可以做到以下几点:

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

    • 免于为不同的界面或测试框架编写相同的代码。

    • 视需要创建能在单个测试作业中运行的多个循环。您还可以使用标签来整理循环,从而方便地跟踪循环以及重新运行特定循环。

    参阅运行游戏循环测试,了解如何在 Test Lab 中运行测试。

第 2 步:选择一种工具来运行您的测试

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

  • 借助 Firebase 控制台,您可以从任意位置上传应用并启动测试。有关使用此工具的说明,请参阅通过 Firebase 控制台进行测试

  • 借助 gcloud 命令行界面 (CLI),您可以使用命令行以交互方式运行测试,并且此命令行界面也非常适合以脚本方式在自动构建和测试流程中运行测试。如需了解如何使用此工具,请参阅通过 gcloud CLI 进行测试

  • 在实体设备上进行测试之前,请在模拟器上本地运行测试,以确保其按预期运行。如需查看相关说明,请参阅在本地测试

第 3 步:指定测试设备

借助 Test Lab,您可以在托管于 Google 数据中心内的各种 iOS 设备和型号上测试您的应用。如需了解详情,请参阅可供使用的设备

第 4 步:查阅测试结果

无论您通过何种方式发起测试,所有测试结果均由 Test Lab 管理,并且可供在线查看。

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

原始测试结果包含测试日志和应用故障详情,这些信息会自动存储在 Google Cloud 存储桶中。如果您指定了一个存储桶,则需要支付相应的存储费用。如果您未指定存储桶,Test Lab 会为您免费创建一个。

如需了解详情,请参阅分析 Firebase Test Lab 结果

设备清理

Google 非常重视您的应用数据的安全。我们遵循行业标准的最佳实践,每次测试运行完毕之后都会从实体设备中移除应用数据并重置这些实体设备的系统设置,确保其准备好运行新的测试。对于那些可以使用自定义恢复映像进行快速清理的设备,我们会多采取一个步骤,即在两次测试运行之间快速清理这些设备。

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


允许 Test Lab 设备访问专用后端服务器

某些移动应用需要与专用后端服务通信,才能在测试期间正常运行。如果您的后端服务器受防火墙规则保护,您可以使用下方的 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 月添加)

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