在运行设备端测试(仪器、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 解析,以作为调用的一部分进行报告。