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

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

iOS 测试实验室要到 5 月 16 日才能通过 gcloud 命令行使用。 如果您想在此之前测试 iOS 应用,请通过 Firebase 控制台进行测试

创建 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 项目设置为您的项目 ID:
    gcloud config set project PROJECT_ID
  4. 确保您的身份验证凭据是最新的:
    gcloud auth login

为您的应用构建 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_PROJECT_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun

运行测试

在运行测试之前,您必须选择一组设备来运行这些测试。要查看设备列表,请在终端中输入以下命令:

gcloud alpha firebase test ios models list

选择设备后,让测试实验室运行测试:

gcloud alpha firebase test ios run --test PATH/TO/MyTests.zip \
  --device model=MODEL_ID_1,version=VERSION_ID_1 \
  --device model=MODEL_ID_2,version=VERSION_ID_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 发生了测试基础架构错误。

发送以下问题的反馈:

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