Lorsque vous exécutez des tests côté appareil (par exemple, des instrumentations, des tests UI Automator), les collecteurs côté hôte ne sont pas toujours 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 afficher 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 signaler automatiquement les métriques collectées d'une manière entièrement compatible avec le pipeline de rapports Tradefed.
Cette bibliothèque est dissociée de Tradefed 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 que votre collecteur s'exécute avec vos tests :
--device-listeners android.device.collectors.ScreenshotListener
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
Implémentation
Lorsque vous implémentez la classe de base BaseMetricListener, vous pouvez choisir le moment où vous souhaitez collecter vos métriques pendant le cycle de vie de l'instrumentation :
- Au début d'une exécution de test :
onTestRunStart - Au début d'un cas de test :
onTestStart - À la fin d'un cas de test :
onTestEnd - En cas d'échec d'un cas de test :
onTestFail - À la fin d'une exécution de test :
onTestRunEnd
Interaction
La collecte de 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 renvoyées aux résultats de l'instrumentation et analysées par Tradefed pour être signalées dans le cadre de l'appel.