本頁面提供有關使用 Firebase 測試實驗室運行測試的常見問題解答幫助和解答。還記錄了已知問題。如果您找不到所需內容或需要其他幫助,請加入 Firebase Slack 上的#test-lab 頻道或聯繫Firebase 支持。
故障排除
當您在測試實驗室目錄中選擇具有高容量級別的設備時,測試可能會更快開始。當設備容量較低時,測試可能需要更長時間才能運行。如果調用的測試數量遠大於所選設備的容量,則測試可能需要更長時間才能完成。
由於以下因素,在任何級別的設備容量級別上運行的測試可能需要更長的時間:
- 流量,影響設備可用性和測試速度。
- 設備或基礎設施故障隨時可能發生。要檢查是否有報告的測試實驗室基礎架構,請參閱Firebase 狀態儀表板。
要了解有關測試實驗室中的設備容量的更多信息,請參閱Android和iOS的設備容量信息。
由於測試運行取消或基礎設施錯誤,通常會出現不確定的測試結果。
基礎設施錯誤是由內部測試實驗室問題引起的,例如網絡錯誤或意外的設備行為。測試實驗室在報告不確定結果之前會在內部終止多次產生基礎設施錯誤的測試運行;但是,您可以使用failFast禁用這些重試。
要確定錯誤原因,請執行以下步驟:
- 在Firebase 狀態儀表板中檢查已知的中斷。
在測試實驗室中重試測試以驗證其是否可重現。
嘗試在不同的設備或設備類型上運行測試(如果適用)。
如果問題仍然存在,請通過 Firebase Slack 上的#test-lab 頻道聯繫測試實驗室團隊。
當您指定的分片數量超過測試實驗室中可用的設備數量時,分片可能會導致您的測試運行時間更長。為了避免這種情況,請嘗試切換到其他設備。有關選擇不同設備的更多信息,請參閱設備容量。
當您提交測試請求時,您的應用程序首先會經過驗證、重新簽名等,以準備在設備上運行測試。通常,此過程會在不到幾秒鐘的時間內完成,但它可能會受到應用程序大小等因素的影響。
準備好應用程序後,將安排測試執行並保留在隊列中,直到設備準備好運行它。在所有測試執行完成運行之前,矩陣狀態將為“待處理”(無論測試執行是在隊列中還是正在運行)。
測試執行完成後,將從設備下載測試工件,進行處理並上傳到雲存儲。此步驟的持續時間可能會受到工件數量和大小的影響。
經常問的問題
Firebase 測試實驗室為設備測試和使用雲 API 提供免費配額。請注意,測試配額使用標準 Firebase 定價計劃,而 Cloud API 配額則不使用。
檢測配額
測試配額由用於運行測試的設備數量決定。 Firebase Spark 計劃有固定的測試配額,用戶無需支付任何費用。對於 Blaze 計劃,如果您對 Google Cloud 的使用量隨著時間的推移而增加,您的配額可能會增加。如果您達到了測試配額,請等到第二天,或者如果您當前使用的是 Spark 計劃,則升級到 Blaze 計劃。如果您已經加入 Blaze 計劃,則可以請求增加配額。有關更多信息,請參閱測試配額。
您可以在Google Cloud Console中監控測試配額使用情況。
雲測試 API 配額
Cloud Test API 具有兩個配額限制:每個項目每天的請求數和每個項目每 100 秒的請求數。您可以在Google Cloud Console中監控您的使用情況。
雲工具結果 API 配額
Cloud Tool Results API 具有兩個配額限制:每個項目每天的查詢次數和每個項目每 100 秒的查詢次數。您可以在Google Cloud Console中監控您的使用情況。
有關 API 限制的更多信息,請參閱測試實驗室的雲 API 配額。如果您已達到 API 配額:
通過直接在 Google Cloud Console 中修改配額來提交更高配額的請求(請注意,大多數限制默認設置為最大值),或者
通過在 Google Cloud Console 中填寫請求表單或聯繫Firebase 支持來請求更高的 API 配額。
在後端,您可以通過根據我們的IP 範圍檢查源 IP 地址來確定流量是否來自 Firebase 託管的測試設備。
測試實驗室不支持 VPC-SC,這會阻止在測試實驗室的內部存儲和用戶結果存儲桶之間複製應用程序和其他測試工件。
要檢測測試中的不穩定行為,我們建議使用--num-flaky-test-attempts選項。 Deflake 重新運行將按照與正常測試執行相同的方式計費或計入每日配額。
請記住以下幾點:
- 當檢測到故障時,整個測試執行會再次運行。不支持僅重試失敗的測試用例。
- Deflake 重試運行計劃同時運行,但不保證並行運行,例如,當流量超過可用設備數量時。
雖然其中一些項目已在我們的路線圖中,但我們目前無法承諾支持這些測試和應用程序開發平台。
詳細的設備信息可通過 API 獲取,並且可以使用描述命令從 gcloud 客戶端訪問:
gcloud firebase test ios models describe MODEL
iOS 測試實驗室本身不支持分片。但是,您可以使用Flank客戶端對 iOS 測試用例進行分片。
這是通過在.xctestrun
文件中設置OnlyTestIdentifiers
鍵和值來實現的。有關更多詳細信息,請參閱xcodebuild.xctestrun
的man
頁。
已知的問題
Robo 測試無法繞過登錄屏幕,這些登錄屏幕需要除輸入憑據才能登錄之外的其他用戶操作(例如,完成驗證碼)。
Robo 測試最適合使用 Android UI 框架中的 UI 元素(包括View
、 ViewGroup
和WebView
對象)的應用程序。如果您使用 Robo 測試來測試使用其他 UI 框架的應用程序(包括使用 Unity 遊戲引擎的應用程序),則測試可能會退出,而不會探索第一個屏幕之外的內容。