在運行設備端測試(儀器、UI Automator 測試等)時,主機端收集器可能並不理想,因為很難將指標收集與設備上運行的測試同步。例如,異步截取的屏幕截圖很可能會錯過想要的屏幕並且無用。
為了滿足這些用例,我們的收集器的設備端版本存在並且可以在任何“AndroidJUnitRunner”工具中使用。可以實施BaseMetricListener以自動報告以與 Tradefed 報告管道完全兼容的方式收集的指標。
該庫與 Tradefed 本身分離,可以在沒有 Tradefed 的情況下使用。
如果您使用的是 Tradefed 的“ AndroidJUnitTest ”運行程序,您只需指定以下命令行選項即可讓您的收集器與您的測試一起運行:
--device-listeners android.device.collectors.ScreenshotListener
注意:為了在運行時解析收集器類,您的檢測 APK 很可能需要通過將以下內容添加到您的 makefile 來靜態包含它們:
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
執行
在基類BaseMetricListener
上實現時,您可以選擇在儀器生命週期內何時收集指標:
- 測試運行開始時:
onTestRunStart
- 當一個測試用例開始時:
onTestStart
- 當一個測試用例結束時:
onTestEnd
- 當測試用例失敗時:
onTestFail
- 測試運行結束時:
onTestRunEnd
相互作用
設備端的指標收集與檢測執行本身同步進行,指標被傳遞回檢測結果並由 Tradefed 解析,以作為調用的一部分進行報告。