使用 Google Cloud CLI 進行測試

本指南說明如何使用 gcloud 執行 XCTest 或遊戲迴圈測試 CLI

步驟 1:設定本機 Google Cloud SDK 環境

  1. 下載 Google Cloud 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. 選擇測試維度。

    Test Lab 可讓您在各種 iOS 版本、裝置和螢幕上執行測試 方向和語言代碼這些設定稱為 測試維度。如要查看每個維度的選項 (舉例來說,裝置的 iOS 版本最好使用支援的 Xcode 版本), modelsversionslocalesdimension

    gcloud firebase test ios dimension list

    螢幕方向比較簡單,因為唯一的選項是 portraitlandscape

    瀏覽測試維度清單,然後選取幾種您想要使用的組合 執行測試請前往定價方案頁面,查看 單日可執行的組合數量上限。

  3. 選擇一組測試維度後,即可執行 Test Lab 測試 進行測試,請使用 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...

    您的測試可能會失敗是因為 ,以及 Test Lab 使用的預設 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=15

    如要協助您在 Firebase 控制台中識別及找出測試矩陣,您可以選擇使用 --client-details matrixLabel="<label>" 旗標為測試矩陣加上標籤,如以下範例所示:

    gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \
      --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
      --client-details matrixLabel="my label"

測試特殊授權

如要測試需要明確應用程式 ID 的授權,您可以設定 --test-special-entitlements 標記。Test Lab 會使用新的套件 ID 重新簽署應用程式,以支援特殊授權,因此請確認 ZIP 檔案中沒有任何資源含有應用程式套件 ID 的直接參照。

支援的授權:
  1. 推播通知 apns-environment
  2. 個人 VPN com.apple.developer.networking.vpn.api
,瞭解如何調查及移除這項存取權。 ,瞭解如何調查及移除這項存取權。 推播通知

如要授權推播通知要求,使用者可以使用私密簽署金鑰,搭配金鑰 ID - C7FD9DJAA8 和團隊 ID - 9CKCGNNUQN,建立 JSON Web 權杖。產生的權杖有效期限 且每 60 分鐘重新整理一次。閱讀更多 建立和 APN 的權杖式連線。

應用程式群組

應用程式群組 ID 普遍不會重複。這表示當我們 重新簽署使用者應用程式,我們只能使用 與 Test Lab 開發人員帳戶相關聯。如果測試 測試就會失敗

執行遊戲迴圈測試

執行 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,請參閱 參考說明文件

步驟 3 (選用):自動執行日後建立的測試

使用 Test Lab 編寫 gcloud 指令

您可以使用殼層指令碼或批次檔案,自動執行行動應用程式測試指令 否則就必須使用 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

指令碼結束代碼

Test Lab 提供多個結束代碼,可協助您進一步瞭解 使用指令碼或批次檔案執行的測試結果。

結束代碼 附註
0 已通過所有測試執行作業。
1 發生一般錯誤。可能的原因包括:檔案名稱不存在或 HTTP/網路錯誤。
2 測試結束,因為提供了未知的指令或引數。
10 測試執行期間,一或多個測試案例 (測試的類別或類別方法) 未通過。
15 Firebase Test Lab 無法判斷測試矩陣是否通過, 失敗,因為發生未預期的錯誤。
19 使用者已取消測試矩陣。
20 發生測試基礎架構錯誤。

步驟 4:調查測試結果

測試開始後,您會收到「測試結果」頁面的連結。測試 需要幾分鐘的執行時間,視您測試容器的 以及為 測試。測試執行完畢後,您可以查看測試結果。詳情請見 正在分析「Firebase Test Lab」的結果,進一步瞭解相關資訊 說明如何解讀測試結果

下一步

請參閱 Google Cloud SDK 說明文件,瞭解正式版β版的測試選項。