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.