Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

使用 gcloud CLI 進行測試

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

本指南介紹瞭如何使用 gcloud CLI 運行 XCTest 或 Game Loop 測試。

第 1 步:配置本地 Google Cloud SDK 環境

  1. 下載谷歌云 SDK。
  2. 這包括 gcloud CLI 工具。

  3. 確保您的安裝是最新的並包含gcloud firebase命令:
          gcloud components update
  4. 使用您的 Google 帳戶登錄 gcloud CLI:
          gcloud auth login
  5. 在 gcloud 中設置您的 Firebase 項目,其中PROJECT_ID是您的 Firebase 項目的 ID:
         gcloud config set project PROJECT_ID

第 2 步:運行測試

運行 XCTest

  1. 通過運行以下命令上傳您的測試的 .zip 文件(如果您尚未打包您的應用程序,請參閱打包您的 XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. 選擇您的測試尺寸。

    測試實驗室可讓您在各種 iOS 版本、設備、屏幕方向和區域設置上運行測試。這些配置稱為測試的測試維度。要查看每個dimension的選項(例如,設備的 iOS 版本支持的 Xcode 版本),請在以下命令中替換modelsversionslocales

    gcloud firebase test ios dimension list

    屏幕方向稍微簡單一些,因為它的唯一選項是portraitlandscape

    查看測試維度列表,然後選擇一些您想要運行測試的組合。訪問定價計劃以查看您每天可以運行的最大組合數。

  3. 選擇一組測試維度後,您可以讓測試實驗室使用firebase test ios run命令運行測試。對於您要測試的每種測試維度組合,請包含一個單獨的--device標誌:

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

    由於構建測試的 Xcode 版本與測試實驗室使用的默認 Xcode 版本不兼容,您的測試可能會失敗。要為您的測試指定支持的 Xcode 版本,請使用--xcode-version標誌:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --xcode-version=11.3

測試特殊權利

要測試需要顯式 App ID 的權利,您可以通過設置--test-special-entitlements標誌來實現。測試實驗室使用新的包標識符重新簽署應用程序以支持特殊權利,因此請確保您的 zip 文件中沒有包含對應用程序包 ID 的直接引用的資源。

推送通知

為了授權推送通知請求,用戶可以使用私有簽名密鑰以及密鑰 ID - C7FD9DJAA8和團隊 ID - 9CKCGNNUQN創建 JSON Web 令牌。生成的令牌有效期為一小時,需要每 60 分鐘刷新一次。閱讀有關建立與 APNs 的基於令牌的連接的更多信息。

應用組

應用程序組 ID 是普遍唯一的。這意味著當我們重新簽署用戶應用程序時,我們只能使用與測試實驗室開發者帳戶關聯的應用程序組 ID。如果您的測試依賴於應用程序組,您的測試將失敗。

運行遊戲循環測試

運行gcloud beta firebase test ios run命令並使用以下標誌來配置運行:

遊戲循環測試的標誌
--type

必需:指定要運行的 iOS 測試的類型。您可以輸入測試類型xctest (默認)或game-loop

--app

必需:應用 IPA 文件的絕對路徑(GCS 或文件系統)。此標誌僅在運行遊戲循環測試時有效。

--scenario-numbers

你想在你的應用程序中運行的循環(又名場景)。您可以輸入一個循環、一個列表或多個循環或一系列循環。默認循環為 1。

例如, --scenario-numbers=1-3,5運行循環 1、2、3 和 5。

--device-model

您要在其上運行測試的物理設備(找出您可以使用的可用設備)。

--timeout

您希望測試運行的最長持續時間。您可以輸入一個整數來表示以秒為單位的持續時間,或者輸入一個整數和枚舉來將持續時間表示為更長的時間單位。

例如:

  • --timeout=200強制您的測試在運行到 200 秒時終止。
  • --timeout=1h強制您的測試在運行一小時後終止。

例如,以下命令運行一個遊戲循環測試,該測試在 iPhone 8 Plus 上執行循環 1、4、6、7 和 8:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

有關 gcloud CLI 的更多信息,請參閱參考文檔

第 4 步(可選) :自動化您構建的未來測試

使用測試實驗室編寫 gcloud 命令腳本

您可以使用 shell 腳本或批處理文件來自動化移動應用程序測試命令,否則您將使用 gcloud 命令行運行這些命令。此示例 bash 腳本運行 XCTest,超時時間為 2 分鐘,並報告測試運行是否成功完成:

if gcloud 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發生測試基礎架構錯誤。

第 5 步:調查測試結果

測試開始時,您會收到一個指向“測試結果”頁面的鏈接。測試可能需要幾分鐘才能運行,具體取決於您選擇的不同配置的數量以及為測試設置的測試超時持續時間。測試運行後,您可以查看測試結果。請參閱分析 Firebase 測試實驗室結果以了解有關如何解釋測試結果的更多信息。

下一步

閱讀 Google Cloud SDK 文檔以探索通常可用或處於測試階段的測試選項。