I raccoglitori di metriche basati sull'host vengono eseguiti sull'host e non sul dispositivo. Interagiscono con il dispositivo dal lato host per raccogliere le metriche che prendono di mira.
Progettazione del raccoglitore di metriche
La classe base estesa da tutti i raccoglitori è
BaseDeviceMetricCollector,
che contribuisce a fornire le stesse funzionalità di base condivise:
- Filtri
- Disabilitazione in corso
- Raccolta di scenari di test e esecuzioni di test
I raccoglitori seguono un modello di reporter dei risultati perché si sincronizzano con l'esecuzione del test sull'host. In altre parole, se i test sono basati sull'host, i raccoglitori vengono eseguiti prima che il test proceda al passaggio di esecuzione successivo.
Ad esempio, se il raccoglitore viene eseguito il giorno testEnded, i raccoglitori vengono eseguiti
prima che l'esecuzione proceda al test successivo con testStart.
Implementa un raccoglitore di metriche basato sull'host
Quando esegui l'implementazione sopra la classe base BaseDeviceMetricCollector, puoi decidere quando raccogliere le metriche durante il ciclo di vita:
- Quando inizia un'esecuzione del test:
onTestRunStart - All'inizio di uno scenario di test:
onTestStart - Al termine di uno scenario di test:
onTestEnd - Al termine di un test:
onTestRunEnd
Eseguire la raccolta asincrona
Oltre ai metodi sincroni, TF fornisce una classe base da implementare
che esegue la raccolta asincrona periodica,
ScheduledDeviceMetricCollector,
che fornisce un metodo collect da implementare che viene eseguito
periodicamente.
Il periodo è personalizzabile in base alle opzioni.
Configurazione XML
Il tag dell'oggetto è metrics_collector, ad esempio:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Consigli
Consulta l'elenco esistente di raccoglitori per assicurarti di non duplicare il lavoro. Cerchiamo di garantire la massima riusabilità, quindi se ogni raccoglitore esegue un solo tipo di raccolta, è possibile combinare e abbinare diversi raccoglitori durante l'esecuzione del test.