Coleta de métricas do lado do dispositivo

Ao executar testes no lado do dispositivo (instrumentações, testes do UI Automator etc.), os coletores do lado do host podem não ser ideais porque são difíceis de sincronizar coleta de métricas para um teste executado em um dispositivo. Por exemplo, uma captura de tela feitas de maneira assíncrona provavelmente perderão a tela desejada e serão inúteis.

Para atender a esses casos de uso, existe uma versão do dispositivo dos nossos coletores e pode ser usado em qualquer "AndroidJUnitRunner" e instrumentalização. BaseMetricListener podem ser implementadas para relatar automaticamente as métricas coletadas de maneira totalmente compatível com o pipeline de relatórios do Tradefed.

Esta biblioteca é separada do próprio Tradefed e pode ser usada sem o Tradefed.

Se você estiver usando o AndroidJUnitTest, runner do Tradefed, basta especificar a seguinte opção de linha de comando para executar o coletor com os testes:

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

Implementação

Ao implementar com base na classe base BaseMetricListener, você pode escolher quando você gostaria de coletar suas métricas durante o ciclo de vida do instrumentação:

  • Quando uma execução de teste é iniciada: onTestRunStart
  • Quando um caso de teste é iniciado: onTestStart
  • Quando um caso de teste termina: onTestEnd
  • Quando um caso de teste falha: onTestFail
  • Quando um teste termina: onTestRunEnd

Interação

A coleta de métricas no dispositivo é feita de forma síncrona com o a execução da instrumentação em si, e as métricas são retornadas ao de instrumentação e analisados pelo Tradefed para serem informados como parte do invocação.