Recopiladores de métricas del dispositivo

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

Para satisfacer estos casos de uso, existe una versión de nuestros recopiladores que se ejecuta en el dispositivo y que se puede usar en cualquier instrumentación de 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á desacoplada de Tradefed y se puede usar sin él.

Si usas el ejecutor AndroidJUnitTest de Tradefed, puedes especificar la siguiente opción de línea de comandos para que tu recopilador se ejecute con tus pruebas:

  --device-listeners android.device.collectors.ScreenshotListener
  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

Implementación

Cuando implementas sobre la clase base BaseMetricListener, puedes elegir cuándo deseas recopilar tus métricas durante el ciclo de vida de la instrumentación:

  • Cuando comienza una prueba de ejecución: onTestRunStart
  • Cuando comienza 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 dispositivo se realiza de forma síncrona con la ejecución de la instrumentación, y Tradefed analiza las métricas que se devuelven a los resultados de la instrumentación para que se registren como parte de la invocación.