Les collecteurs de métriques pilotés par l'hôte s'exécutent sur l'hôte et non côté appareil. Ils interagissent avec l'appareil côté hôte pour collecter les métriques qu'ils ciblent.
Conception du collecteur de métriques
La classe de base que tous les collecteurs étendent est BaseDeviceMetricCollector
, qui permet de fournir les mêmes fonctionnalités de base partagées :
- Filtrage
- Désactivation
- Collecte sur les scénarios de test par rapport aux exécutions de test
Les collecteurs suivent un modèle de rapporteur de résultats, car ils se synchronisent avec l'exécution du test sur l'hôte. En d'autres termes, si les tests sont pilotés par l'hôte, les collecteurs sont exécutés avant que le test ne passe à l'étape d'exécution suivante.
Par exemple, si le collecteur s'exécute sur testEnded
, les collecteurs s'exécutent avant que l'exécution ne passe au test suivant avec testStart
.
Implémenter un collecteur de métriques piloté par l'hôte
Lorsque vous implémentez la classe de base BaseDeviceMetricCollector
, vous pouvez décider quand collecter vos métriques au cours du cycle de vie :
- Lorsqu'une série de tests commence :
onTestRunStart
- Lorsqu'un scénario de test commence :
onTestStart
- À la fin d'un cas de test :
onTestEnd
- À la fin d'une série de tests :
onTestRunEnd
Effectuer une collecte asynchrone
En plus des méthodes synchrones, TF fournit une classe de base à implémenter qui effectue une collecte asynchrone périodique, ScheduledDeviceMetricCollector
, qui fournit une méthode collect
à implémenter et qui s'exécute périodiquement.
La période est personnalisable par options.
Configuration XML
La balise d'objet est metrics_collector
, par exemple :
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Recommandations
Consultez la liste des collecteurs existants pour vous assurer de ne pas faire double emploi. Nous essayons de garantir une réutilisabilité maximale. Par conséquent, le fait que chaque collecteur effectue un seul type de collecte permet de combiner et d'associer différents collecteurs lors de l'exécution des tests.