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