主機驅動的指標收集器會在主機上執行,而非裝置端。他們會從主機端與裝置互動,收集目標指標。
指標收集器設計
所有收集器擴充的基底類別都是 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>
建議
查看現有的收集器清單,確保您不會重複作業。我們盡量確保可重複使用,因此讓每個收集器執行單一類型的收集作業,可在測試執行期間混合及比對不同的收集器。