Check out what’s new from Firebase at Google I/O 2022. Learn more

分析 Firebase 測試實驗室結果

有多種方法可以使用 Firebase 測試實驗室在您的 Android 應用上運行測試,包括命令行界面Android Studio 、Firebase 控制台中的測試實驗室 UI測試 API 。無論您選擇如何開始測試,結果都會存儲在您指定的 Firebase 項目中。除了上述任何工具之外,您還可以使用ToolResults API探索結果。本頁介紹如何查看和分析這些測試結果。

關鍵概念

要查看之前所有測試運行的結果,請在 Firebase 控制台的項目左側導航面板中選擇測試實驗室。此頁面顯示您使用測試實驗室在項目中測試過的應用程序的所有測試運行。

要查看測試結果,首先需要了解三個概念:

當您針對您選擇的設備和配置運行測試或一組測試用例時,測試實驗室會針對您的應用批量運行測試,然後將結果顯示為測試矩陣

設備 × 測試執行 = 測試矩陣

設備
您在其上運行測試的物理或虛擬設備(僅限 Android),例如手機、平板電腦或可穿戴設備。測試矩陣中的設備由設備型號、操作系統版本、屏幕方向和區域設置(也稱為地理和語言設置)標識。
測試,測試執行
要在設備上運行的測試(或一組測試用例)。您可以為每台設備運行一個測試,也可以選擇對測試進行分片並在不同的設備上運行其測試用例。
測試矩陣
包含測試執行的狀態和測試結果。如果矩陣中的任何測試執行失敗,則整個矩陣都會失敗。

以下部分說明瞭如何瀏覽測試結果。

解釋測試歷史結果

當您通過選擇Test Lab導航到您的測試結果時,您會看到到目前為止您已運行的測試的結果。

測試歷史按應用分組。每個應用只顯示最近的五個測試矩陣;如果有更多可用,您可以單擊應用程序測試列表底部的所有矩陣鏈接以查看該應用程序的完整列表。

解釋測試矩陣結果

通過測試實驗室 UI開始測試時,您將被重定向到一個頁面,您可以在其中查看測試矩陣並單擊特定測試執行以查看測試結果。 Android Studiogcloud 命令也提供了測試矩陣結果頁面的 URL。

在典型的測試矩陣中,您可能會在十幾個不同的設備上運行測試。每個測試執行都可以有不同的結果。測試矩陣中任何測試執行的可能結果包括:

  • 通過通過測試: 沒有遇到任何故障。
  • 失敗的測試失敗: 至少遇到一個故障。
  • 無定論通過測試:測試結果不確定,可能是由於測試實驗室錯誤。
  • 跳過通過測試:矩陣中某些測試執行的選定維度值不兼容。當您選擇的設備與您選擇的一個或多個 Android API 級別不兼容時,就會出現這種情況。

要查看 Firebase 項目中給定應用的所有測試矩陣的匯總測試結果,請點擊該應用的名稱,如以下示例所示:

示例測試矩陣結果頁面只有四個測試執行測試矩陣結果

這會將您帶到您的應用程序的測試矩陣列表,您可以在其中單擊任何測試矩陣的名稱以查看測試矩陣結果,您可以在其中單擊應用程序的名稱(如下圖紅框所示)查看與您的 Firebase 項目關聯的其他應用的測試矩陣列表。

示例測試矩陣列表頁面測試矩陣列表

測試矩陣可以通過、失敗或不確定。如果該矩陣中的任何測試執行失敗或不確定,則該測試矩陣顯示為失敗或不確定。

解釋 Robo 測試結果

如果您使用 Robo 運行測試,除了通常的測試指標外,您的結果還包括 Robo 抓取您的 UI 的視頻和屏幕截圖。這些視頻和屏幕截圖包括 Robo 在爬行期間採取的行動的視覺指示,類似於 Android 中的“顯示觸摸”功能。您可以使用這些指示來幫助您跟隨 Robo 的進度,並重現它可能發現的任何錯誤。

示例 Robo 測試結果視頻

機器人測試結果

解釋單個測試執行的結果

在測試矩陣結果頁面中,單擊其中一個測試執行以查看該特定測試執行的結果。

示例測試執行結果頁面測試執行結果

在此頁面上,您可以看到每次測試執行所需的時間。您還可以查看與您的測試 APK(用於插樁測試)中的方法相對應的特定測試用例的結果以及詳細的測試結果,包括測試日誌、屏幕截圖和視頻。對於Robo 測試,詳細的測試結果還包括一個活動圖,以圖形方式顯示 Robo 測試訪問的 UI 路徑。

分區儀器測試結果

為了幫助您解釋儀器化的測試結果,測試實驗室將每個測試分成自己的詳細報告頁面,其中包含堆棧跟踪、日誌和視頻。無論您是否使用 Android Orchestrator,此功能都有效。

示例測試用例結果頁面測試用例結果

解釋可訪問性結果

Robo 測試使用 Android Accessibility Scanner 來檢測應用程序中的可訪問性問題(請注意,您也可以在設備上本地運行掃描)。有關如何查看和解釋 Robo 測試的可訪問性結果的說明,請訪問Accessibility Scanner 入門

有關如何提高應用的可訪問性的一般信息,請訪問Android 開發者可訪問性文檔

性能指標

在物理設備上運行的測試也會返回性能指標:

公制所需的設備配置
應用啟動時間API 19+
CPU使用率API 21+
內存使用情況
網絡活動
每秒幀數API 21+,包括SurfaceView
圖形性能API 23+

顯卡性能細節

圖形性能報告包含幾個關鍵圖形指標的統計數據:

  • 錯過的垂直同步:錯過的垂直同步事件數除以渲染時間超過 16 毫秒的幀數。
  • 高輸入延遲:時間超過 24 毫秒的輸入事件數除以渲染時間超過 16 毫秒的幀數。
  • 慢 UI 線程: UI 線程完成時間超過 8 毫秒的次數除以渲染時間超過 16 毫秒的幀數。
  • 慢速繪製命令:向 GPU 發送繪製命令耗時超過 12 毫秒的次數除以渲染耗時超過 16 毫秒的幀數。
  • 位圖上傳速度慢:位圖上傳到 GPU 的時間超過 3.2 毫秒的次數除以渲染時間超過 16 毫秒的幀數。
  • 渲染時間:測試運行的每一幀的渲染時間分佈。大於 32 毫秒的渲染時間會導致您的 UI 明顯變慢。 700+ 的渲染時間表示凍結幀。渲染數據是從dumpsys graphicsstats收集的。

詳細的測試結果

詳細的測試結果在您運行測試後的 90 天內可用,並存儲在 Google Cloud Storage 存儲桶中(但在 Firebase 控制台中也可見)。在測試執行結果頁麵點擊查看源文件,您可以在雲端存儲桶中查看詳細的測試結果。當詳細的測試結果不再可用時,您仍然可以看到哪些測試通過或失敗。

要將詳細的測試結果保留 90 天以上,您需要使用--results-bucket gcloud 命令行選項將這些測試結果發送到您擁有的 Cloud Storage 存儲分區。然後,您可以設置期限設置以確定結果在您的 Cloud Storage 存儲分區中存儲多長時間。有關如何更改年齡設置的信息,請參閱生命週期條件