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.