Collecteurs de métriques basés sur l'hôte

Les collecteurs de métriques gérés par l'hôte s'exécutent sur l'hôte et non sur l'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 géré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 géré par l'hôte

Lorsque vous implémentez sur la classe de base BaseDeviceMetricCollector, vous pouvez décider quand collecter vos métriques pendant le cycle de vie:

  • Au début d'une exécution de test: onTestRunStart
  • Au début d'un scénario de test: onTestStart
  • À la fin d'un cas de test: onTestEnd
  • À la fin d'une exécution de test: 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 qui s'exécute périodiquement.

La période est personnalisable via des options.

Configuration XML

La balise de l'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 existante des collecteurs pour vous assurer de ne pas dupliquer le travail. Nous essayons de garantir une réutilisation maximale. Par conséquent, chaque collecteur effectuant un seul type de collecte permet de mélanger et de faire correspondre davantage de collecteurs lors de l'exécution des tests.