有多種方法可以使用 Firebase Test Lab 在您的 Android 應用程序上運行測試,包括命令行界面、 Android Studio 、Firebase 控制台中的Test Lab UI和Testing API 。無論您選擇如何開始測試,結果都會存儲在您指定的 Firebase 項目中。除了上述任何工具之外,您還可以使用ToolResults API探索結果。本頁介紹如何查看和分析這些測試結果。
關鍵概念
要查看之前所有測試運行的結果,請在 Firebase 控制台的項目左側導航面板中選擇測試實驗室。此頁面顯示您使用測試實驗室對您的項目進行測試的應用程序的所有測試運行。
要查看測試結果,您首先需要了解三個概念:
當您針對您選擇的設備和配置運行測試或一組測試用例時,測試實驗室會針對您的應用程序批量運行測試,然後將結果顯示為測試矩陣。
設備 × 測試執行 = 測試矩陣
- 設備
- 您運行測試的物理或虛擬設備(僅限 Android),例如手機、平板電腦或可穿戴設備。測試矩陣中的設備由設備型號、操作系統版本、屏幕方向和區域設置(也稱為地理和語言設置)標識。
- 測試,測試執行
- 要在設備上運行的測試(或一組測試用例)。您可以在每台設備上運行一個測試,或者選擇對測試進行分片並在不同設備上運行其測試用例。
- 測試矩陣
- 包含測試執行的狀態和測試結果。如果矩陣中的任何測試執行失敗,則整個矩陣失敗。
以下部分解釋瞭如何瀏覽測試結果。
解釋測試歷史結果
當您通過選擇Test Lab導航到您的測試結果時,您會看到到目前為止運行的測試的結果。
測試歷史按應用分組。每個應用僅顯示最近的五個測試矩陣;如果有更多可用,您可以單擊應用測試列表底部的“所有矩陣”鏈接以查看該應用的完整列表。
解釋測試矩陣結果
通過測試實驗室 UI開始測試時,您將被重定向到一個頁面,您可以在其中查看測試矩陣並單擊特定的測試執行以查看測試結果。 Android Studio和gcloud 命令也為測試矩陣結果頁面提供了一個 URL。
在典型的測試矩陣中,您可能會在十幾個不同的設備上運行測試。每次測試執行都會有不同的結果。測試矩陣中任何測試執行的可能結果包括:
- 通過
: 沒有遇到故障。
- 失敗的
: 至少遇到一處故障。
- 無定論
: 測試結果不確定,可能是由於測試實驗室錯誤。
- 跳過
:矩陣中某些測試執行的選定維度值不兼容。當您選擇的設備與您選擇的一個或多個 Android API 級別不兼容時,就會發生這種情況。
要查看 Firebase 項目中給定應用的所有測試矩陣的聚合測試結果,請單擊應用的名稱,如以下示例所示:
只有四個測試執行的示例測試矩陣結果頁面
這會將您帶到應用程序的測試矩陣列表,您可以在其中單擊任何測試矩陣的名稱以查看測試矩陣結果,還可以在其中單擊應用程序的名稱(顯示在下面的紅色框中)以查看與您的 Firebase 項目關聯的其他應用的測試矩陣列表。
示例測試矩陣列表頁面
測試矩陣可以通過、失敗或不確定。如果矩陣中的任何測試執行失敗或不確定,則測試矩陣顯示為失敗或不確定。
解讀 Robo 測試結果
如果您使用 Robo 運行測試,除了通常的測試指標外,您的結果還包括 Robo 抓取您的 UI 的視頻和屏幕截圖。這些視頻和屏幕截圖包括 Robo 在爬行過程中採取的動作的視覺指示,類似於 Android 中的“顯示觸摸”功能。您可以使用這些指示來幫助您跟進 Robo 的進度,並重現它可能發現的任何錯誤。
示例 Robo 測試結果視頻
解釋單個測試執行的結果
在測試矩陣結果頁面中,單擊其中一個測試執行以查看該特定測試執行的結果。
示例測試執行結果頁面
在此頁面上,您可以看到每次測試執行所需的時間。您還可以查看與測試 APK 中的方法對應的特定測試用例的結果(用於插樁測試)和詳細的測試結果,包括測試日誌、屏幕截圖和視頻。對於Robo 測試,詳細的測試結果還包括一個活動圖,以圖形方式顯示 Robo 測試訪問的 UI 路徑。
分區儀器測試結果
為幫助您解釋儀器化測試結果,測試實驗室將每個測試分成自己的詳細報告頁面,並附有堆棧跟踪、日誌和視頻。無論您是否使用 Android Orchestrator,此功能都適用。
示例測試用例結果頁面
解釋可訪問性結果
Robo 測試使用 Android Accessibility Scanner 來檢測應用程序中的輔助功能問題(請注意,您也可以在設備上本地運行掃描)。有關如何查看和解釋 Robo 測試的輔助功能結果的說明,請訪問輔助功能掃描儀入門。
有關如何改進應用程序輔助功能的一般信息,請訪問Android 開發人員輔助功能文檔。
性能指標
在物理設備上運行的測試也會返回性能指標:
公制 | 所需的設備配置 |
---|---|
應用啟動時間 | API 19+ |
CPU使用率 | API 21+ |
內存使用情況 | |
網絡活動 | |
每秒幀數 | API 21+ 並包含一個SurfaceView |
圖形性能 | API 23+ |
圖形性能細節
圖形性能報告包含幾個關鍵圖形指標的統計信息:
- 錯過的 Vsync:錯過的 Vsync 事件數除以渲染時間超過 16 毫秒的幀數。
- 高輸入延遲:用時間超過 24 毫秒的輸入事件數除以渲染時間超過 16 毫秒的幀數。
- 慢速 UI 線程: UI 線程完成時間超過 8 毫秒的次數除以渲染時間超過 16 毫秒的幀數。
- 慢速繪製命令:向 GPU 發送繪製命令花費超過 12 毫秒的次數除以渲染時間超過 16 毫秒的幀數。
- 位圖上傳速度慢:位圖上傳到 GPU 的時間超過 3.2 毫秒的次數除以渲染時間超過 16 毫秒的幀數。
- 渲染時間:測試運行的每一幀渲染時間的分佈。渲染時間大於 32 毫秒會導致用戶界面明顯變慢。 700 次以上的渲染時間表示凍結幀。渲染數據是從
dumpsys graphicsstats
收集的。
詳細的測試結果
詳細的測試結果在您運行測試後 90 天內可用,並存儲在 Google Cloud Storage 存儲桶中(但也可以在 Firebase 控制台中看到)。您可以在測試執行結果頁麵點擊測試結果,查看雲存儲桶中的詳細測試結果。當詳細的測試結果不再可用時,您仍然可以看到哪些測試通過或失敗。
要將詳細測試結果保留 90 天以上,您需要使用--results-bucket gcloud 命令行選項將這些測試結果發送到您擁有的 Cloud Storage 存儲桶。然後,您可以設置Age設置以確定結果在 Cloud Storage 存儲桶中存儲多長時間。有關如何更改年齡設置的信息,請參閱生命週期條件。