Coleta de métricas do lado do dispositivo

Ao executar testes do lado do dispositivo (instrumentações, testes do UI Automator, etc.), 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 perderá a tela desejada e será inútil.

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

Essa biblioteca é desacoplada do próprio Tradefed e pode ser usada sem o Tradefed.

Se você estiver usando o executor ' AndroidJUnitTest ' do Tradefed, basta 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 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 própria execução da instrumentação, e as métricas são passadas de volta para os resultados da instrumentação e analisadas pelo Tradefed para serem relatadas como parte da invocação.