Coletores de métricas no dispositivo

Ao executar testes no dispositivo (por exemplo, instrumentações, testes do UI Automator), os coletores do lado do host podem não ser ideais porque é difícil sincronizar a coleta de métricas com um teste em execução em um dispositivo. Por exemplo, uma captura de tela feita de forma assíncrona provavelmente não vai mostrar a tela desejada e será inútil.

Para atender a esses casos de uso, existe uma versão do lado do dispositivo dos nossos coletores, que pode ser usada em qualquer instrumentação do AndroidJUnitRunner. BaseMetricListener pode ser implementado para gerar relatórios automáticos de métricas coletadas de maneira totalmente compatível com o pipeline de relatórios da Tradefed.

Essa biblioteca é independente do Tradefed e pode ser usada sem ele.

Se você estiver usando o executor AndroidJUnitTest do Tradefed, especifique a seguinte opção de linha de comando para que o coletor seja executado com seus testes:

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

Implementação

Ao implementar na classe base BaseMetricListener, você pode escolher quando quer coletar as métricas durante o ciclo de vida da instrumentação:

  • Quando uma execução de teste começa: onTestRunStart
  • Quando um caso de teste começa: onTestStart
  • Quando um caso de teste termina: onTestEnd
  • Quando um caso de teste falha: onTestFail
  • Quando uma execução de teste termina: onTestRunEnd

Interação

A coleta de métricas no lado do dispositivo é feita de forma síncrona com a execução da instrumentação. As métricas são transmitidas de volta aos resultados da instrumentação e analisadas pelo Tradefed para serem incluídas no relatório como parte da invocação.