设备端指标收集器

当运行设备端测试(例如,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 解析以作为调用的一部分报告。