Collecteurs de métriques côté appareil

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

Pour répondre à ces cas d'utilisation, il existe une version de nos collecteurs côté appareil qui peut être utilisée dans n'importe quelle instrumentation AndroidJUnitRunner. Vous pouvez implémenter BaseMetricListener pour générer automatiquement des rapports sur les métriques collectées d'une manière entièrement compatible avec le pipeline de création de rapports Tradefed.

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

Si vous utilisez l'exécuteur AndroidJUnitTest de Tradefed, vous pouvez 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

Lorsque vous implémentez sur la classe de base BaseMetricListener, vous pouvez choisir quand vous souhaitez collecter vos métriques au cours du cycle de vie de l'instrumentation:

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

Interaction

La collecte des métriques côté appareil est effectuée de manière synchrone avec l'exécution de l'instrumentation elle-même. Les métriques sont transmises aux résultats de l'instrumentation et analysées par Tradefed pour être signalées dans le cadre de l'appel.