本指南說明如何使用 gcloud 執行 XCTest 或遊戲迴圈測試 CLI
步驟 1:設定本機 Google Cloud SDK 環境
- 下載 Google Cloud SDK
- 確認安裝的是最新版本,且已包含
gcloud firebase
指令:gcloud components update
- 使用 Google 帳戶登入 gcloud CLI:
gcloud auth login
- 在 gcloud 中設定 Firebase 專案,其中 PROJECT_ID 是
Firebase 專案的 ID:
gcloud config set project PROJECT_ID
包括 gcloud CLI 工具。
步驟 2:執行測試
執行 XCTest
執行下列指令,上傳測試的 .zip 檔案 ( 尚未打包應用程式,請參見 封裝 XCTest):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
選擇測試維度。
Test Lab 可讓您在各種 iOS 版本、裝置和螢幕上執行測試 方向和語言代碼這些設定稱為 測試維度。如要查看每個維度的選項 (舉例來說,裝置的 iOS 版本最好使用支援的 Xcode 版本),
models
、versions
或locales
:dimension
:gcloud firebase test ios dimension list
螢幕方向比較簡單,因為唯一的選項是
portrait
和landscape
。瀏覽測試維度清單,然後選取幾種您想要使用的組合 執行測試請前往定價方案頁面,查看 單日可執行的組合數量上限。
選擇一組測試維度後,即可讓 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
使用新的 bundle-ID 重新簽署應用程式,以便支援
授權,因此請確認 ZIP 檔案中不含任何資源
直接參照應用程式的軟體包 ID。
- 推播通知
apns-environment
- 個人 VPN
com.apple.developer.networking.vpn.api
如要授權推播通知要求,使用者可以建立 JSON 網路 取得符記 簽署金鑰 以及金鑰 ID:C7FD9DJAA8 和團隊 ID: 9CKCGNNUQN。產生的權杖有效期限 且每 60 分鐘重新整理一次。閱讀更多 建立和 APN 的權杖式連線。
應用程式群組應用程式群組 ID 普遍不會重複。這表示當我們 重新簽署使用者應用程式,我們只能使用 。如果測試 測試就會失敗
執行遊戲迴圈測試
執行 gcloud beta firebase test ios run
指令,並使用下列指令
設定執行作業的旗標:
遊戲迴圈測試旗標 | |
---|---|
--type
|
必要:指定要執行的 iOS 測試類型。您可以輸入
測試類型 |
--app
|
必要:應用程式 IPA 檔案的絕對路徑 (GCS 或檔案系統)。 此標記只有在執行遊戲迴圈測試時才會生效。 |
--scenario-numbers
|
您想在應用程式中執行的迴圈 (即情境)。 您可以輸入一個迴圈、清單/迴圈,或是範圍迴圈。預設迴圈為 1。
舉例來說, |
--device-model
|
要執行測試的實體裝置 (查看可用的裝置 可以使用)。 |
--timeout
|
測試的執行時間上限。您可以輸入整數 以秒數或列舉/列舉的方式呈現 做為較長的時間單位 例如:
|
舉例來說,下列指令會執行會執行迴圈的遊戲迴圈測試 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 說明文件,瞭解有哪些測試選項 正式發布 或 Beta 版。