当运行设备端测试(例如,instrumentation 测试、UI Automator 测试)时,主机端收集器可能不是理想选择,因为很难将指标收集与设备上运行的测试同步。例如,异步截取的屏幕截图很可能错过所需的屏幕,从而变得无用。
为了满足这些用例,我们提供了设备端版本的收集器,可以在任何 AndroidJUnitRunner
instrumentation 中使用。可以实现 BaseMetricListener
以自动报告以与 Tradefed 报告管道完全兼容的方式收集的指标。
此库与 Tradefed 本身解耦,可以在没有 Tradefed 的情况下使用。
如果您正在使用 Tradefed 中的 AndroidJUnitTest
运行程序,您可以指定以下命令行选项,以便您的收集器与您的测试一起运行
--device-listeners android.device.collectors.ScreenshotListener
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
实现
当在基类 BaseMetricListener
之上实现时,您可以选择在 instrumentation 的生命周期中何时收集指标
- 当测试运行开始时:
onTestRunStart
- 当测试用例开始时:
onTestStart
- 当测试用例结束时:
onTestEnd
- 当测试用例失败时:
onTestFail
- 当测试运行结束时:
onTestRunEnd
交互
设备端指标的收集与 instrumentation 执行本身同步进行,指标被传递回 instrumentation 结果,并由 Tradefed 解析以作为调用的一部分报告。