Pengumpul metrik yang digerakkan oleh host berjalan di host dan bukan di sisi perangkat. Mereka berinteraksi dengan perangkat dari sisi host untuk mengumpulkan metrik yang mereka targetkan.
Desain kolektor metrik
Kelas dasar yang akan diperluas oleh semua kolektor adalah BaseDeviceMetricCollector , yang membantu menyediakan fungsionalitas dasar bersama yang sama:
- Penyaringan
- menonaktifkan
- Koleksi kasus uji vs. uji coba
Kolektor mengikuti model reporter hasil karena mereka menyinkronkan dengan eksekusi pengujian di host. Dengan kata lain, jika pengujian digerakkan oleh host, kolektor akan dieksekusi sebelum pengujian melanjutkan ke langkah eksekusi berikutnya.
Misalnya, jika kolektor mengeksekusi pada testEnded
, sebelum eksekusi melanjutkan ke pengujian berikutnya dengan testStart
, kolektor akan mengeksekusi.
Terapkan pengumpul metrik yang digerakkan oleh host
Saat menerapkan di atas BaseDeviceMetricCollector
kelas dasar Anda dapat memutuskan kapan Anda ingin mengumpulkan metrik Anda selama siklus hidup:
- Saat uji coba dimulai:
onTestRunStart
- Saat kasus uji dimulai:
onTestStart
- Saat kasus uji berakhir:
onTestEnd
- Saat uji coba berakhir:
onTestRunEnd
Bagaimana melakukan pengumpulan asinkron
Selain metode sinkron, TF menyediakan kelas dasar untuk diimplementasikan yang melakukan pengumpulan asinkron berkala, ScheduledDeviceMetricCollector , yang menyediakan metode collect
untuk diimplementasikan yang akan dijalankan secara berkala.
Periode dapat disesuaikan dengan opsi.
konfigurasi XML
Tag objek akan menjadi metrics_collector
, misalnya:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Rekomendasi
Pertama lihat daftar kolektor yang ada untuk memastikan Anda tidak menduplikasi pekerjaan. Kami mencoba untuk memastikan dapat digunakan kembali secara maksimal, sehingga setiap kolektor melakukan satu jenis koleksi memungkinkan lebih banyak pencampuran dan pencocokan kolektor yang berbeda selama pelaksanaan pengujian.