Lorsque vous exécutez des tests côté appareil (par exemple, des tests d'instrumentation ou 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 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 générer automatiquement des rapports sur les métriques collectées de manière entièrement compatible avec le pipeline de reporting Tradefed.
Cette bibliothèque est dissociée de Tradefed et peut être utilisée sans Tradefed.
Si vous utilisez le runner 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 au cours du cycle de vie de l'instrumentation :
- Lorsqu'une série de tests commence :
onTestRunStart
- Lorsqu'un scénario de test commence :
onTestStart
- À la fin d'un cas de test :
onTestEnd
- Lorsqu'un scénario de test échoue :
onTestFail
- À la fin d'une série de tests :
onTestRunEnd
Interaction
La collecte des métriques côté appareil est effectuée de manière synchrone à 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 incluses dans l'invocation.