Coleta de métricas do lado do dispositivo

Ao executar testes no lado do dispositivo (instrumentação, testes do UI Automator etc.), os coletores no 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 tirada de forma assíncrona provavelmente perderá a tela desejada e será inútil.

Para atender a esses casos de uso, existe uma versão de nossos coletores no lado do dispositivo e pode ser usada em qualquer instrumentação 'AndroidJUnitRunner'. BaseMetricListener pode ser implementado para relatar automaticamente as métricas coletadas de uma forma totalmente compatível com o pipeline de relatórios do Tradefed.

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

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

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

Implementação

Ao implementar sobre a classe base BaseMetricListener , você pode escolher quando deseja coletar suas métricas durante o ciclo de vida da 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 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 própria execução da instrumentação, e as métricas são repassadas aos resultados da instrumentação e analisadas pelo Tradefed para serem relatadas como parte da invocação.