Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

使用 gcloud CLI 進行測試

本指南介紹瞭如何使用 gcloud CLI 運行 XCTest 或遊戲循環測試。

第1步:配置您的本地谷歌雲SDK環境

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

  3. 確保您的安裝是最新的,並包括gcloud firebase命令:
          gcloud components update
  4. 使用谷歌帳戶到gcloud CLI登錄:
          gcloud auth login
  5. 設置你的火力地堡項目gcloud,其中PROJECT_ID是你的火力地堡項目的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 版本、設備、屏幕方向和區域設置上運行測試。這些配置被稱為測試的測試維度。要查看每個維度選項(例如,支持的Xcode版本設備的iOS版本),替代modelsversions ,或localesdimension在下面的命令:

    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 的直接引用的資源。

推送通知

對於授權推播通知要求,用戶可以使用私有創建JSON網絡令牌簽名密鑰C7FD9DJAA8和團隊ID - - 9CKCGNNUQN與密鑰ID一起。生成的令牌有效期為一小時,需要每 60 分鐘刷新一次。了解更多關於建立基於令牌連接到APNS。

運行遊戲循環測試

運行gcloud beta firebase test ios run命令,並使用下面的選項來配置運行:

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

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

--app

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

--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 並超時兩分鐘,並報告測試運行是否成功完成:

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:調查測試結果

當測試開始時,您將收到一個鏈接到測試結果頁面。測試可能需要幾分鐘才能運行,具體取決於您選擇的不同配置的數量以及為測試設置的測試超時持續時間。測試運行後,您可以查看測試結果。見分析火力地堡測試實驗室結果,以了解更多有關如何解釋您的測試結果。

下一步

閱讀谷歌雲SDK文檔研究測試是選擇一般可用測試