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 ne pas capturer l'écran souhaité et d'être inutile.
Pour répondre à ces cas d'utilisation, une version côté appareil de nos collecteurs existe et peut être utilisée dans n'importe quelle instrumentation AndroidJUnitRunner
.
BaseMetricListener
peut être implémenté 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 elle-même et peut être utilisée sans Tradefed.
Si vous utilisez AndroidJUnitTest
depuis 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 scénario de test:
onTestEnd
- En cas d'échec d'un scénario de test:
onTestFail
- À la fin d'une exécution de 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.