本頁面提供疑難排解說明,並回答使用 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 限制,請參閱「Cloud API quotas for Test Lab」。如果已達到 API 配額:
如何判斷抵達後端的流量是否來自 Test Lab?
在後端,您可以根據IP 範圍檢查來源 IP 位址,判斷流量是否來自 Firebase 代管的測試裝置。
Test Lab 是否支援 VPC-SC?
Test Lab 不支援 VPC-SC,因為這項功能會禁止在 Test Lab 的內部儲存空間與使用者的結果值區之間,複製應用程式和其他測試構件。
如何在 Test Lab 中偵測不穩定測試?
如要偵測測試中的不穩定行為,建議使用
--num-flaky-test-attempts
選項。Deflake 重試作業的計費方式或每日配額用量,與一般測試執行作業相同。
但請注意以下事項:
- 系統偵測到失敗時,會再次執行整個測試。系統不支援只重試失敗的測試案例。
- 系統會安排在同一時間執行防呆重試作業,但無法保證會並行執行,例如流量超過可用裝置數量時。
哪裡可以找到裝置詳細資料,例如解析度等?
您可以透過 API 取得詳細的裝置資訊,並使用 describe 指令從 gcloud 用戶端存取:
gcloud firebase test ios models describe MODEL
iOS 測試可以分片嗎?
iOS 版 Test Lab 不支援分片功能。不過,您可以使用 Flank 用戶端將 iOS 測試案例分片。
方法是在 .xctestrun
檔案中設定 OnlyTestIdentifiers
鍵和值。詳情請參閱man
頁面。xcodebuild.xctestrun
為什麼 iOS 測試結果缺少影片?
如果是 iOS 18 以上版本,我們無法在結果中顯示影片。
已知問題
登入人機驗證
如果登入畫面要求使用者輸入憑證以外的額外動作 (例如完成人機驗證),Robo 測試就無法略過。
支援 UI 架構
如果應用程式使用 Android UI 架構中的 UI 元素 (包括 View
、ViewGroup
和 WebView
物件),Robo 測試效果最佳。如果您使用 Robo 測試來執行使用其他 UI 架構的應用程式 (包括使用 Unity 遊戲引擎的應用程式),測試可能會在未探索第一個畫面以外的內容時結束。