使用任何持续集成 (CI) 系统开发您的应用时,您可以结合使用 Firebase 测试实验室。借助于持续集成系统,每次签入对应用源代码的更新时,您都可以自动构建和测试应用。
将 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 级别等)的应用,则多配置项目是较佳选择。
- 点击 Save(保存)。
创建项目后,您的网络浏览器将显示项目的主页面。
添加修订控制和 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 系统结合使用,请查看相关文档: