開始使用持續集成 (CI) 系統進行測試

在使用任何持續集成 (CI) 系統開發應用時,您可以使用 Firebase 測試實驗室。每次簽入應用程序源代碼的更新時,持續集成系統可讓您自動構建和測試應用程序。

將 Firebase 測試實驗室與 Jenkins CI 結合使用

本節介紹如何將 Test Lab 與Jenkins CI一起使用。

要求

在將 Firebase 測試實驗室與 Jenkins 結合使用之前,您需要完成以下步驟:

  1. 設置 gcloud。按照從 gcloud 命令行使用 Firebase 測試實驗室的說明創建 Firebase 項目並配置您的本地 Google Cloud SDK 環境。

  2. 創建並授權服務帳戶。服務帳戶不受垃圾郵件檢查或驗證碼提示的影響,否則可能會阻止您的 CI 構建。在Google Cloud Console中創建一個具有Editor角色的服務帳號,然後將其激活(請參閱gcloud auth activate-service-account 文檔以了解如何操作)。

  3. 啟用所需的 API。使用服務帳號登錄後:在Google Developers Console API 庫頁面中,啟用Google Cloud Testing APICloud Tool Results API 。要啟用這些 API,請在控制台頂部的搜索框中鍵入這些 API 名稱,然後在該 API 的概述頁面上單擊啟用API。

安裝和設置 Jenkins

您可以在 Linux 或 Windows 上安裝和設置 Jenkins CI。本指南的某些細節特定於在 Linux 上安裝和運行 Jenkins CI,包括在文件路徑中使用斜杠 ( / )。

要在運行 Linux 或 Windows 的計算機上下載和安裝 Jenkins,請按照安裝 Jenkins中的說明進行操作。安裝 Jenkins 後,按照啟動和訪問 Jenkins的說明完成設置並訪問 Jenkins 儀表板。

配置全局安全設置

Jenkins 首次安裝時沒有配置用戶身份驗證和訪問控制。在將 Jenkins 與 Firebase 測試實驗室一起使用之前,請配置全局安全設置以實施訪問控制和驗證用戶身份。

配置全局安全設置

  1. 導航到服務器上的 Jenkins 儀表板。為此,請瀏覽到http://<servername>:8080 ,其中<servername>是您安裝 Jenkins 的計算機的名稱。
  2. 在 Jenkins 儀表板上,單擊Manage Jenkins ,然後單擊Configure Global Security
  3. 在“配置全局安全性”頁面上,單擊“啟用安全性”,然後單擊“保存”。

有關為 Jenkins 配置安全設置的更多信息,請參閱快速簡單的安全性、標準安全性設置保護 Jenkins

創建一個詹金斯項目

接下來,創建一個項目,用於使用 Firebase 測試實驗室對您的應用進行持續集成測試。

創建 Jenkins 項目

  1. 導航到服務器上的 Jenkins 儀表板。為此,請瀏覽到http://<servername>:8080 ,其中<servername>是您安裝 Jenkins 的計算機的名稱。
  2. 在 Jenkins 儀表板上,單擊New Item
  3. 項目名稱字段中為您的項目輸入名稱:
    • 選擇Freestyle 項目以創建使用單一構建配置的項目。
    • 選擇構建多配置項目以創建在多個不同構建配置上運行的項目。如果您計劃使用各種構建配置(多個語言環境、多個 Android API 級別等)構建您的應用程序,那麼多配置項目是最佳選擇。
  4. 單擊保存

創建項目後,Web 瀏覽器會顯示項目的主頁。

添加修訂控制和 Gradle 構建步驟

本節介紹如何將 Jenkins 與 GitHub 等修訂控制系統集成,以及如何添加 Gradle 構建步驟以從源代碼構建 APK 包。

與 GitHub 和其他版本控制系統集成

如果您使用 GitHub 或其他版本控制系統來管理您的應用程序的源代碼,您可以將 Jenkins 配置為在每次簽入您的應用程序更新時運行自動構建並運行測試。您還可以將 Jenkins 配置為定期運行構建。

要了解如何在 Jenkins 中配置構建,請參閱配置自動構建

添加 Gradle 構建步驟以重新構建 APK 包

如果您使用修訂控制系統來管理您的應用程序的源代碼,則每次 Jenkins 從您的修訂控制系統下載源代碼時,您都需要包含一個 Gradle 構建步驟來創建新的 APK 二進製文件。

  1. 添加構建步驟以在應用程序的主目錄中運行以下命令:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. 添加一個構建步驟以在使用測試實驗室進行測試時使用 Gradle 創建的 APK 包。您可以將此路徑用作下面提供的 shell 腳本示例中的< local_server_path>,其中<AppFolder>是您的應用的 Android Studio 項目文件夾:

    <AppFolder>/app/build/outputs/apk
    

將測試實驗室構建步驟添加到 Jenkins

現在您已準備好向 Jenkins 添加構建步驟,以使用 gcloud 命令行運行測試實驗室。

添加 gcloud 構建步驟

  1. 在項目的主頁上,單擊配置
  2. 項目配置頁面上,向下滾動到Build部分,然後從Add build step菜單中選擇Execute shell

  3. Jenkins Execute 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
    

分析測試結果

測試實驗室完成應用測試後,您可以在 Firebase 控制台或項目中的Google Cloud Storage 存儲分區中查看測試結果。您還可以在上面顯示的 shell 命令中添加gsutil命令,以將測試結果數據複製到本地計算機。要了解更多信息,請參閱分析 Firebase 測試實驗室結果

與其他 CI 系統的持續集成

要了解如何將 Firebase 測試實驗室與其他 CI 系統一起使用,請查看他們的文檔: