从 gcloud 命令行开始使用 Firebase 测试实验室

利用 Firebase 测试实验室,您可以通过 gcloud 命令行界面在多台设备上测试您的 iOS 应用。请继续阅读,了解如何开始使用这项功能。

创建 Firebase 项目

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

在 Spark 和 Flame 方案中,您每天可使用测试实验室执行的测试有次数限制。要想在使用测试实验室时不受每日配额限制,您必须升级为 Firebase Blaze 方案。

配置您的本地 Google Cloud SDK 环境

  1. 如果您还没有 gcloud 命令行工具,请先下载:Google Cloud SDK
  2. 确保您安装的 Cloud SDK 是最新版本,并且包含 gcloud firebase 命令:
    gcloud components update
  3. 确保您的身份验证凭据是最新的:
    gcloud auth login
  4. 在 gcloud 中设置您当前的项目:
    gcloud config set project PROJECT_ID
  5. 配置 gcloud,以将您当前的项目用作其结算/配额项目:
    gcloud config set billing/quota_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

成功构建测试后,将其压缩以上传到测试实验室:

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

运行测试

选择测试维度

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

gcloud alpha firebase test ios dimension list

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

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

运行测试

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

gcloud alpha 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...

分析测试结果

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

自动运行将来的测试

编写测试实验室 gcloud 命令脚本

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

if gcloud alpha 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

脚本退出代码

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

测试实验室的脚本退出代码

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

后续步骤

探索 iOS 测试实验室命令行 SDK:gcloud alpha firebase test ios

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面