主機驅動的指標收集器在主機而不是設備端運行。他們從主機端與設備交互以收集他們所針對的指標。
指標收集器設計
所有收集器都將擴展的基類是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>
建議
首先查看現有的收集器列表,以確保您沒有重複工作。我們試圖確保最大的可重用性,因此讓每個收集器執行單一類型的收集允許在測試執行期間更多地混合和匹配不同的收集器。