使用任何持续集成 (CI) 系统开发您的应用时,您可以结合使用 Firebase Test Lab。借助于持续集成系统,每次签入对应用源代码的更新时,您都可以自动构建和测试应用。
将 Firebase Test Lab 与 Jenkins CI 结合使用
本部分介绍如何将 Test Lab 与 Jenkins CI 结合使用。
要求
在将 Firebase Test Lab 与 Jenkins 结合使用之前,您需要先完成以下步骤:
设置 gcloud。按照通过 gcloud 命令行使用 Firebase Test Lab 的说明创建一个 Firebase 项目,并配置您的本地 Google Cloud SDK 环境。
创建服务账号并向其授权。服务账号不需要接受垃圾内容检查或人机识别系统验证,这两类操作可能会阻止 CI 构建。在 Google Cloud 控制台中创建拥有 Editor 角色的服务账号,然后将其激活(请参阅 gcloud auth activate-service-account 文档了解如何操作)。
启用所需的 API。使用服务账号登录后:在 Google Developers Console“API 库”页面中,启用 Google Cloud Testing API 和 Cloud Tool Results API。如需启用这些 API,请在 Developers Console 顶部的搜索框中输入这些 API 的名称,然后在相应 API 的概览页面上点击启用 API。
安装并设置 Jenkins
您可以在 Linux 或 Windows 上安装并设置 Jenkins CI。本指南的某些内容只适用于在 Linux 上安装和运行 Jenkins CI,包括文件路径中使用的斜杠 (/
)。
如需在运行 Linux 或 Windows 的计算机上下载并安装 Jenkins,请遵循安装 Jenkins 的相关说明。安装 Jenkins 后,请遵循启动并访问 Jenkins 的相关说明以完成 Jenkins 信息中心的设置并进行访问。
配置全局安全设置
Jenkins 在首次安装时不会配置用户身份验证和访问控制。在结合使用 Jenkins 与 Firebase Test Lab 之前,请配置全局安全设置以强制执行访问权限控制和对用户进行身份验证。
配置全局安全设置
- 前往服务器上的 Jenkins 信息中心。如需执行此操作,请前往 http://<服务器名称>:8080,其中 <服务器名称> 是已安装 Jenkins 的计算机的名称。
- 在 Jenkins 信息中心中,点击 Manage Jenkins(管理 Jenkins),然后点击 Configure Global Security(配置全局安全设置)。
- 在 Configure Global Security配置全局安全设置)页面上,点击 Enable security(启用安全设置),然后点击 Save(保存)。
如需详细了解如何为 Jenkins 配置安全设置,请参阅快速简单的安全设置、标准安全设置以及保障 Jenkins 安全。
创建 Jenkins 项目
接下来,创建一个项目,用于通过 Firebase Test Lab 对您的应用运行持续集成测试。
创建 Jenkins 项目
- 前往服务器上的 Jenkins 信息中心。如需执行此操作,请前往 http://<服务器名称>:8080,其中 <服务器名称> 是已安装 Jenkins 的计算机的名称。
- 在 Jenkins 信息中心中,点击 New Item(新建项目)。
- 在 Item name(项目名称)字段中输入项目的名称:
- 选择 Freestyle project(自由风格项目)可创建使用单个构建配置的项目。
- 选择 Build multi-configuration project(构建多配置项目)可创建在多个不同的构建配置上运行的项目。如果您计划构建具有多种构建配置(多个语言区域、多个 Android API 级别等)的应用,则多配置项目是较佳选择。
- 点击保存。
创建项目后,您的网络浏览器将显示项目的主页面。
添加修订控制和 Gradle 构建步骤
本部分介绍如何将 Jenkins 与 GitHub 等修订控制系统进行集成,以及如何添加 Gradle 构建步骤以从源代码构建 APK 软件包。
与 GitHub 和其他修订控制系统进行集成
如果您使用 GitHub 或其他修订控制系统来管理应用的源代码,您可以将 Jenkins 配置为在每次签入应用更新时自动进行构建并运行测试。您还可以对 Jenkins 进行配置,以定期运行构建。
如需了解有关在 Jenkins 中配置构建的更多信息,请参阅配置自动构建。
添加 Gradle 构建步骤以重新构建 APK 软件包
如果您使用修订控制系统管理应用的源代码,那么,每次 Jenkins 从您的修订控制系统下载源代码时,您必须添加一个 Gradle 构建步骤以创建新的 APK 二进制文件。
添加构建步骤以便在应用的主目录中运行下列命令:
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
通过 Test Lab 进行测试时,添加构建步骤以使用 Gradle 创建的 .APK 软件包。在下面提供的 shell 脚本示例中,您可以使用此路径作为 <local_server_path>,其中 <AppFolder> 是您的应用的 Android Studio 项目文件夹:
<AppFolder>/app/build/outputs/apk
向 Jenkins 添加 Test Lab 构建步骤
现在,您可以使用 gcloud 命令行向 Jenkins 添加构建步骤以运行 Test Lab 了。
添加 gcloud 构建步骤
- 在项目的主页面中,点击 Configure(配置)。
在 project configuration(项目配置)页面上,向下滚动到 Build(构建)部分,然后,从 Add build step(应用构建步骤)菜单中选择 Execute shell(执行 Shell)。
在 Jenkins Execute shell command(Jenkins 执行 Shell 命令)窗口中,输入以下内容,将 <local_server_path> 替换为服务器上示例应用的路径,将 <app_apk> 替换为应用的 APK,并将 <app_test_apk> 替换为应用的测试 APK:
gcloud firebase test android run --app <local_server_path>/<app_apk>.apk --test <local_server_path>/<app_test_apk>.apk
分析测试结果
在 Test Lab 完成应用的测试后,您可以在 Firebase 控制台或项目的 Google Cloud Storage 存储桶中查看测试结果。您还可以向如上所示的 shell 命令添加一个 gsutil
命令,以将测试结果数据复制到本地计算机。如需了解详情,请参阅分析 Firebase Test Lab 结果。
持续集成其他 CI 系统
如需了解如何将 Firebase Test Lab 与其他 CI 系统结合使用,请查看相关文档: