Collecte de métriques côté appareil

Lorsque vous exécutez des tests côté appareil (instrumentations, tests UI Automator, etc.), les collecteurs côté hôte peuvent ne pas être idéaux, car il est difficile de synchroniser la collecte de métriques à un test exécuté sur un appareil. Par exemple, une capture d'écran prises de manière asynchrone, passera probablement à côté de l'écran souhaité et sera inutile.

Pour répondre à ces cas d'utilisation, il existe une version de nos collecteurs côté appareil. et peut être utilisé dans n'importe quel "AndroidJUnitRunner" et l'instrumentation. BaseMetricListener peuvent être mises en œuvre pour générer automatiquement des rapports sur les métriques collectées de manière entièrement compatible avec le pipeline de création de rapports Tradefed.

Cette bibliothèque est dissociée de Tradefed lui-même et peut être utilisée sans Tradefed.

Si vous utilisez AndroidJUnitTest depuis Tradefed, il vous suffit de spécifier l'option de ligne de commande suivante : pour exécuter votre collecteur avec vos tests:

  --device-listeners android.device.collectors.ScreenshotListener
  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

Implémentation

Lors de l'implémentation en plus de la classe de base BaseMetricListener, vous pouvez choisir lorsque vous souhaitez collecter vos métriques pendant le cycle de vie instrumentation:

  • Lorsqu'un test démarre: onTestRunStart
  • Au démarrage d'un scénario de test: onTestStart
  • À la fin d'un scénario de test: onTestEnd
  • En cas d'échec d'un scénario de test: onTestFail
  • À la fin d'un test: onTestRunEnd

Interaction

La collecte des métriques côté appareil s'effectue de manière synchrone l'exécution de l'instrumentation proprement dite, et les métriques sont renvoyées au les résultats d'instrumentation, puis analysés par Tradefed pour être consignés dans le appel.