ホスト駆動型指標コレクタは、デバイス側ではなくホスト側で実行されます。ホスト側からデバイスと通信してターゲット側の指標を収集します。
指標コレクタの設計
すべてのコレクタが拡張する基本クラスは 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>
おすすめ
まず既存のコレクタのリストを見て、作業が重複していないことを確認します。再利用性を高めるため、各コレクタには 1 種類の収集を行わせるようにします。そうすることで、テスト実行時にさまざまなコレクタを最適に組み合わせることが可能となります。