Google 致力于为黑人社区推动种族平等。查看具体举措

通过 gcloud 命令行开始使用 Firebase Test Lab

利用 Firebase Test Lab,您可以通过 gcloud 命令行界面在多台设备上测试您的 iOS 应用。本文介绍了如何开始使用这项功能。

创建 Firebase 项目

如果您还没有为自己的应用准备 Firebase 项目,请转到 Firebase 控制台,点击新建项目来创建一个项目。您需要拥有项目的所有权或修改权限。

如果使用 Spark 方案,您每天可使用 Test Lab 执行的测试作业有数量限制。要想在使用 Test Lab 时不受每日配额限制,您必须升级为 Firebase Blaze 方案。

配置您的本地 Google Cloud SDK 环境

  1. 下载 Google Cloud SDK
  2. 其中包括 gcloud CLI 工具。

  3. 确保您安装的版本是最新的,并且包含gcloud firebase命令:
          gcloud components update
  4. 使用您的 Google 帐号登录 gcloud CLI:
          gcloud auth login
  5. 在 gcloud 中设置您的 Firebase 项目,其中 PROJECT_ID 是您的 Firebase 项目的 ID:
         gcloud config set project PROJECT_ID

为您的应用构建 XCtest

要构建测试,请在终端中使用以下命令:

项目

xcodebuild -project PATH/TO/YOUR_WORKSPACE.xcodeproj \
  -scheme YOUR_SCHEME \
  -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
  -sdk iphoneos build-for-testing

工作区

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
  -scheme YOUR_SCHEME \
  -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
  -sdk iphoneos build-for-testing

成功构建测试后,将其压缩以上传到 Test Lab:

cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun

运行测试

选择测试维度

利用 Test Lab,您可以针对不同 iOS 版本、设备、屏幕方向和语言区域等配置运行测试。这些配置统称为测试的“测试维度”。要查看每个维度的选项,请将以下命令中的 dimension 替换为 modelsversionslocales

gcloud firebase test ios dimension list

屏幕方向稍微简单一些,因为它只有 portraitlandscape 选项。

浏览测试维度列表,并选择一些您想要测试的组合。如果您使用的是 Spark 方案,每天最多可以运行 5 个组合。如果您使用的是 Blaze 方案,则可以每天对数量不限的组合运行测试,但每次测试最多只能包含 200 个组合。要详细了解测试限制和价格,请参阅定价方案

运行测试

选择一组测试维度后,您可以使用 firebase test ios run 命令让 Test Lab 运行测试。对于您要测试的每个测试维度组合,请添加单独的 --device 标志:

gcloud firebase test ios run --test PATH/TO/MyTests.zip \
  --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
  --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
  etc...

如果构建测试所用的 Xcode 版本与 Test Lab 使用的默认 Xcode 版本不兼容,您的测试可能会失败。要为测试选择 Xcode 的版本,请使用 --xcode-version 标志:

gcloud firebase test ios run --test PATH/TO/MyTests.zip \
  --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
  --xcode-version=11.3

分析测试结果

测试完成后,gcloud 工具将打印出您的测试结果的基本摘要。作为摘要的一部分,该工具会提供一个供您在 Firebase 控制台中查看更详细结果的链接。要详细了解如何解读这些结果,请参阅分析 Firebase 测试结果

自动运行将来的测试

编写 Test Lab gcloud 命令脚本

除了使用 gcloud 命令行运行移动应用测试命令外,您也可以使用 shell 脚本或批处理文件自动执行这些命令。此 bash 脚本示例会运行 XCTest(超时值设为两分钟),并报告测试运行是否已成功完成:

if gcloud firebase test ios run --test MyTest.zip --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

脚本退出代码

Test Lab 提供了几种退出代码,以帮助您更好地理解使用脚本或批处理文件运行的测试的结果。

Test Lab 的脚本退出代码

退出代码 说明
0 所有测试作业均已通过。
1 发生了常规错误。可能的原因包括:文件名不存在或出现 HTTP/网络错误。
2 因为提供的命令或参数未知,所以测试退出。
10 测试作业中的一个或多个测试用例(被测试的类或类方法)未能通过。
15 由于发生了意外错误, Firebase Test Lab 无法确定测试矩阵是顺利通过还是失败了。
19 用户已取消测试矩阵。
20 发生了测试基础架构错误。

下一步

请参阅 Google Cloud SDK 文档,了解已正式推出Beta 版的测试选项。