设备端指标收集

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