Recopilación de métricas del lado del dispositivo

Cuando se ejecutan pruebas del lado del dispositivo (instrumentación, pruebas de UI Automator, etc.), los recopiladores del lado del host pueden no ser ideales porque es difícil sincronizar la recopilación de métricas con una prueba que se ejecuta en un dispositivo. Por ejemplo, una captura de pantalla tomada de forma asíncrona probablemente perderá la pantalla deseada y será inútil.

Para cumplir con estos casos de uso, existe una versión del lado del dispositivo de nuestros recopiladores y se puede usar en cualquier instrumentación 'AndroidJUnitRunner'. BaseMetricListener se puede implementar para informar automáticamente las métricas que se recopilan de una manera totalmente compatible con la canalización de informes de Tradefed.

Esta biblioteca está desvinculada de Tradefed y se puede utilizar sin Tradefed.

Si está utilizando el corredor ' AndroidJUnitTest ' de Tradefed, simplemente puede especificar la siguiente opción de línea de comando para que su recopilador se ejecute con sus pruebas:

  --device-listeners android.device.collectors.ScreenshotListener

PRECAUCIÓN: Para que las clases de recopiladores se resuelvan en el tiempo de ejecución, lo más probable es que su APK de instrumentación deba incluirlas estáticamente agregando lo siguiente a su archivo MAKE:

  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

Implementación

Al implementar sobre la clase base BaseMetricListener , puede elegir cuándo le gustaría recopilar sus métricas durante el ciclo de vida de la instrumentación:

  • Cuando comienza una ejecución de prueba: onTestRunStart
  • Cuando se inicia un caso de prueba: onTestStart
  • Cuando finaliza un caso de prueba: onTestEnd
  • Cuando falla un caso de prueba: onTestFail
  • Cuando finaliza una ejecución de prueba: onTestRunEnd

Interacción

La recopilación de métricas en el lado del dispositivo se realiza de forma sincronizada con la ejecución de la instrumentación en sí, y las métricas se devuelven a los resultados de la instrumentación y Tradefed las analiza para informarlas como parte de la invocación.