主机驱动的指标收集器在主机上运行,而不是在设备端运行。这些收集器从主机端与设备进行交互,以收集它们瞄准的指标。
指标收集器设计
所有收集器将扩展的基类是 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>
建议
首先看一下现有的收集器列表,以确保您没有做重复的工作。我们会尽力确保实现最高的可重用性,因此应让每个收集器执行一种类型的收集,因为这样可以在测试执行期间更多地混合搭配不同的收集器。