主机驱动的指标收集器

主机驱动的指标收集器在主机上运行,而不是在设备端运行。这些收集器从主机端与设备进行交互,以收集它们瞄准的指标。

指标收集器设计

所有收集器将扩展的基类是 BaseDeviceMetricCollector,它有助于提供相同的共享基本功能:

  • 过滤
  • 停用
  • 测试用例与测试运行的指标收集

收集器遵循结果报告程序模型,因为它们与主机上的测试执行同步。换句话说,如果测试由主机驱动,那么收集器将在测试进入下一个执行步骤之前执行。

例如,如果收集器在 testEnded 时执行,那么收集器将在通过 testStart 继续执行下一个测试之前执行。

实现主机驱动的指标收集器

在基类 BaseDeviceMetricCollector 之上实现时,您可以决定要在生命周期内的什么时间收集指标:

  • 测试运行开始时:onTestRunStart
  • 测试用例开始时:onTestStart
  • 测试用例结束时:onTestEnd
  • 测试运行结束时:onTestRunEnd

执行异步收集

除了同步方法之外,TF 还提供了一个待实现的基类,即 ScheduledDeviceMetricCollector,用来执行定期异步收集。该基类提供了一个将定期运行但有待实现的 collect 方法。

收集时间段可通过选项进行自定义。

XML 配置

对象标记将为 metrics_collector,例如:

<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
    <option name="categories" value="freq"/>
</metrics_collector>

建议

首先看一下现有的收集器列表,以确保您没有做重复的工作。我们会尽力确保实现最高的可重用性,因此应让每个收集器执行一种类型的收集,因为这样可以在测试执行期间更多地混合搭配不同的收集器。