本頁面提供使用 Firebase Test Lab 執行測試的相關疑難排解說明和常見問題解答。並記錄已知問題。如果找不到所需資訊或需要進一步協助,請加入 Firebase Slack 的 #test-lab 頻道,或與 Firebase 支援團隊聯絡。
疑難排解
為什麼測試執行時間這麼長?
在 Test Lab 目錄中選取容量等級較高的裝置,可讓測試更快開始。如果裝置容量較低,測試可能需要更長的時間才能執行。如果叫用的測試數量遠大於所選裝置的容量,測試可能需要更長的時間才能完成。
在任何裝置容量層級執行的測試可能會因為下列因素而耗時較久:
- 流量,會影響裝置可用性和測試速度。
- 裝置或基礎架構故障,隨時都可能發生。如要查看是否有已回報的 Test Lab 基礎架構,請參閱 Firebase 狀態資訊主頁。
如要進一步瞭解 Test Lab 中的裝置容量,請參閱 Android 和 iOS 的裝置容量資訊。
為什麼我收到不明確測試結果?
測試結果不確定通常是因為取消測試執行或基礎架構錯誤。
基礎架構錯誤是因內部 Test Lab 問題 (例如網路錯誤或裝置發生非預期行為) 所致。Test Lab 會在回報結果不確定之前,內部退回多次產生基礎架構錯誤的測試執行作業;不過,您可以使用 failFast 停用這些重試。
如要判斷造成錯誤的原因,請按照下列步驟操作:
- 前往 Firebase 狀態資訊主頁查看是否有已知的中斷情形。
在 Test Lab 中重試測試,驗證是否可重現。
請嘗試在其他裝置或裝置類型上執行測試 (如適用)。
如果問題仍未解決,請在 Firebase Slack 的 #test-lab 頻道中與 Test Lab 團隊聯絡。
為什麼分割作業會讓測試執行時間變長?
如果您指定的資料分割數量超過 Test Lab 中可用的裝置數量,資料分割可能會導致測試執行時間變長。為避免這種情況,請嘗試改用其他裝置。如要進一步瞭解如何選擇其他裝置,請參閱「
裝置容量。
為什麼測試需要很長的時間才能開始?
提交測試要求時,應用程式會先驗證、重新簽署等,以便準備在裝置上執行測試。這項程序通常會在幾秒內完成,但可能會受到應用程式大小等因素的影響。
應用程式準備就緒後,系統會安排測試執行作業,並留在佇列中,直到裝置準備好可以執行為止。在所有測試執行作業都完成之前,矩陣狀態會是「未放送」(無論測試執行作業是否在佇列中或正在執行)。
為什麼測試需要很長的時間才能完成?
測試執行作業完成後,系統會從裝置下載測試構件、處理,然後上傳至 Cloud Storage。此步驟的時間長度會受到遺留物的數量和大小影響。
常見問題
Test Lab 的免付費配額為何?用完後該怎麼辦?
Firebase Test Lab 提供可用於在裝置上測試及使用 Cloud API 的免付費配額。請注意,測試配額會使用標準 Firebase 定價方案,而 Cloud API 配額則不會。
測試配額
測試配額取決於用於執行測試的裝置數量。Firebase Spark 方案有固定的測試配額,使用者無須付費。對於 Blaze 方案,如果 Google Cloud 的用量隨時間增加,您的配額也可能會增加。如果達到測試配額,請等到隔天再升級至 Blaze 方案 (如果目前使用 Spark 方案)。如果您已使用 Blaze 方案,可以要求提高配額。詳情請參閱測試配額相關說明。
您可以在 Google Cloud 控制台中監控測試配額用量。
Cloud Testing API 配額
Cloud Testing API 有兩個配額限制:每個專案每日要求次數,以及每個專案每 100 秒要求次數。您可以在 Google Cloud 控制台中監控使用情形。
Cloud Tool Results API 配額
Cloud Tool Results API 有兩個配額限制:每個專案每日的查詢次數,以及每個專案每 100 秒的查詢次數。您可以在 Google Cloud 控制台中監控用量。
如要進一步瞭解 API 限制,請參閱「Test Lab 的 Cloud API 配額」。如果您已達到 API 配額上限:
如何判斷到達後端的流量是否來自 Test Lab?
您可以透過後端,檢查來源 IP 位址是否符合我們的IP 範圍,判斷流量是否來自 Firebase 代管的測試裝置。
Test Lab 是否可與 VPC-SC 搭配運作?
Test Lab 不適用於 VPC-SC,因為後者會在 Test Lab 的內部儲存空間和使用者的結果值區之間,封鎖應用程式和其他測試構件複製作業。
如何在 Test Lab 中偵測不穩定的測試?
如要偵測測試中的不穩定行為,建議您使用
--num-flaky-test-attempts
選項。Deflake 重播作業的計費或計入每日配額的方式,與一般測試執行作業相同。
但請注意以下事項:
- 偵測到失敗時,整個測試執行作業會再次執行。系統不支援只重試失敗的測試案例。
- 系統就會安排同時執行 Deflake 重試執行作業,但不保證會同時執行,例如當流量超過可用裝置數量時。
我可以在哪裡查看裝置詳細資料 (例如解析度等)?
您可以透過 API 取得詳細的裝置資訊,並使用 describe 指令 從 gcloud 用戶端存取這些資訊:
gcloud firebase test ios models describe MODEL
我可以將區隔作業與 iOS 測試搭配使用嗎?
iOS 版 Test Lab 不支援分割功能。不過,您可以使用 Flank 用戶端來分割 iOS 測試案例。
這項功能會在 .xctestrun
檔案中設定 OnlyTestIdentifiers
鍵和值。如需進一步瞭解 xcodebuild.xctestrun
,請參閱 man
頁面。
已知問題
登入人機驗證 (Captcha)
Robo 測試無法略過登入畫面,因為登入畫面需要使用者輸入憑證以外的其他動作,例如完成人機驗證。
支援 UI 架構
Robo 測試最適合使用 Android UI 架構中的 UI 元素 (包括 View
、ViewGroup
和 WebView
物件) 的應用程式。如果您使用 Robo 測試來測試使用其他 UI 架構的應用程式 (包括使用 Unity 遊戲引擎的應用程式),測試可能會在未探索第一個畫面以外的內容就結束。