本指南說明如何使用 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 會使用新的套件 ID 重新簽署應用程式,以支援特殊授權,因此請確認 ZIP 檔案中沒有任何資源含有應用程式套件 ID 的直接參照。
- 推播通知
apns-environment
- 個人 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 測試類型。您可以輸入
測試類型 |
--app
|
必要:應用程式 IPA 檔案的絕對路徑 (GCS 或檔案系統)。 此標記只有在執行遊戲迴圈測試時才會生效。 |
--scenario-numbers
|
您想在應用程式中執行的迴圈 (即情境)。 您可以輸入一個迴圈、清單/迴圈,或是範圍迴圈。預設迴圈為 1。
舉例來說, |
--device-model
|
您要執行測試的實體裝置 (瞭解您可以使用的可用裝置)。 |
--timeout
|
測試的執行時間上限。您可以輸入整數 以秒數或列舉/列舉的方式呈現 做為較長的時間單位 例如:
|
舉例來說,下列指令會執行遊戲迴圈測試,在 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 說明文件,瞭解正式版或β版的測試選項。