Firebase 测试实验室可让您在一系列设备和配置上对您的应用进行质量测试。本指南概述了测试实验室的主要概念、iOS 产品以及有关如何开始测试的说明。
有关测试实验室配额和定价计划的信息,请参阅使用情况、配额和定价。
关键概念和术语
当您针对您选择的设备和配置运行测试或一组测试用例时,测试实验室会针对您的应用程序批量运行测试,然后将结果显示为测试矩阵。
设备 × 测试执行 = 测试矩阵
- 设备
- 您运行测试的物理或虚拟设备(仅限 Android),例如手机、平板电脑或可穿戴设备。测试矩阵中的设备由设备型号、操作系统版本、屏幕方向和区域设置(也称为地理和语言设置)标识。
- 测试,测试执行
- 要在设备上运行的测试(或一组测试用例)。您可以在每台设备上运行一个测试,或者选择对测试进行分片并在不同设备上运行其测试用例。
- 测试矩阵
- 包含测试执行的状态和测试结果。如果矩阵中的任何测试执行失败,则整个矩阵失败。
第 1 步:准备要上传到测试实验室的测试
您可以使用测试实验室运行以下测试。请注意,所有测试类型最多可以在物理设备上运行 45 分钟,任何未捕获的异常都会导致测试失败。
XCTest(包括 XCUITests) :您使用XCTest 框架编写的单元测试。请访问创建 XCTest ,了解有关修改 XCTest 以与测试实验室一起运行的说明。
游戏循环测试:使用“演示模式”模拟玩家在游戏应用程序中的操作的测试。这是一种快速且可扩展的方式来验证您的游戏是否对用户表现良好。当您选择运行游戏循环测试时,您可以:
为您的游戏引擎编写本机测试。
避免为不同的 UI 或测试框架编写相同的代码。
可选择创建多个循环以在单个测试执行中运行。您还可以使用标签来组织循环,这样您就可以跟踪它们并重新运行特定的循环。
请访问运行游戏循环测试,了解有关如何在测试实验室中运行测试的说明。
第 2 步:选择一个工具来运行您的测试
您可以选择以下工具来运行测试:
Firebase 控制台让您可以从任何地方上传应用程序并启动测试。有关使用此工具的说明,请参阅使用 Firebase 控制台进行测试。
gcloud 命令行界面 (CLI)使您能够从命令行以交互方式运行测试,并且也非常适合作为自动化构建和测试过程的一部分编写脚本。有关使用此工具的说明,请参阅使用 gcloud CLI 进行测试。
在真实设备上进行测试之前,请在模拟器上本地运行您的测试,以确保它按预期运行。有关说明,请参阅本地测试。
第 3 步:指定测试设备
借助测试实验室,您可以在 Google 数据中心托管的各种 iOS 设备和型号上针对您的应用运行测试。要了解更多信息,请参阅可用设备。
第 4 步:查看测试结果
无论您如何启动测试,您的所有测试结果都由测试实验室管理,并且可以在线查看。
测试结果摘要会自动存储并可以在 Firebase 控制台中查看。它包含与您的测试最相关的数据,包括特定于测试用例的视频、屏幕截图、通过、失败或得到不稳定结果的测试数量,等等。
原始测试结果包含测试日志和应用程序故障详细信息,并自动存储在 Google Cloud 存储桶中。如果指定存储桶,则存储费用由您负责。如果您未指定存储桶,Test Lab 会免费为您创建一个。
有关详细信息,请参阅分析 Firebase 测试实验室结果。
设备清理
Google 非常重视您的应用数据的安全性。我们遵循行业标准的最佳实践,在每次测试运行后删除应用程序数据并重置物理设备的系统设置,以确保它们已准备好运行新测试。对于我们可以使用自定义恢复映像进行刷写的设备,我们更进一步,在测试运行之间对这些设备进行刷写。
对于测试实验室使用的虚拟设备,设备实例在使用后被删除,以便每次测试运行都使用一个新的虚拟设备实例。
允许测试实验室设备访问私有后端服务器
一些移动应用程序需要与私有后端服务通信才能在测试期间正常运行。如果您的后端服务器受防火墙规则保护,您可以使用下面的 IP 地址块打开通过防火墙的路由,从而允许访问 Test Lab 的物理和虚拟设备。
移动广告
测试实验室提供了一个可扩展的基础架构,可自动执行应用程序测试,不幸的是,此功能可能会被旨在产生欺诈性广告收入的恶意应用程序滥用。
要缓解此问题:
如果您使用或与第三方数字广告提供商(例如,广告网络或需求方平台)合作,建议您在应用开发和测试期间使用测试广告而不是真实广告。
如果您必须在测试中使用真实广告,请通知与您合作的数字广告提供商使用以下IP 地址块过滤掉测试实验室产生的收入和所有相应流量。您无需通知 Google 拥有的广告提供商; Test Lab 会为您解决这个问题。
测试实验室设备使用的 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(2019 年 11 月新增) 34.69.234.64/29(2019 年 11 月新增) 34.73.34.72/29(添加于 11-2019) 34.73.178.72/29(2019 年 11 月新增) 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(2022 年 2 月删除) 216.239.44.24/29(2022 年 2 月删除) |