主机驱动的指标收集器在主机而不是设备端运行。他们从主机端与设备交互以收集他们所针对的指标。
指标收集器设计
所有收集器都将扩展的基类是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>
建议
首先查看现有的收集器列表,以确保您没有重复工作。我们试图确保最大的可重用性,因此让每个收集器执行单一类型的收集允许在测试执行期间更多地混合和匹配不同的收集器。