Os coletores de métricas controlados por host são executados no host e não no lado do dispositivo. Eles interagem com o dispositivo do lado do host para coletar as métricas que visam.
Projeto do coletor de métricas
A classe base que todos os coletores estenderão é BaseDeviceMetricCollector , que ajuda a fornecer as mesmas funcionalidades básicas compartilhadas:
- Filtragem
- Desativando
- Coleta em casos de teste vs. execuções de teste
Os coletores seguem um modelo de relator de resultados , pois sincronizam com a execução do teste no host. Em outras palavras, se os testes forem controlados por host, os coletores serão executados antes que o teste prossiga para a próxima etapa de execução.
Por exemplo, se o coletor for executado em testEnded
, antes que a execução prossiga para o próximo teste com testStart
, o(s) coletor(es) será(ão) executado(s).
Implemente um coletor de métricas baseado em host
Ao implementar sobre a classe base BaseDeviceMetricCollector
, você pode decidir quando deseja coletar suas métricas durante o ciclo de vida:
- Quando uma execução de teste é iniciada:
onTestRunStart
- Quando um caso de teste começa:
onTestStart
- Quando um caso de teste termina:
onTestEnd
- Quando uma execução de teste termina:
onTestRunEnd
Executar coleta assíncrona
Além dos métodos síncronos, o TF fornece uma classe base para implementação que realiza coleta assíncrona periódica, ScheduledDeviceMetricCollector , que fornece um método collect
a ser implementado que será executado periodicamente.
O período é personalizável por opções.
configuração XML
A tag do objeto será metrics_collector
, por exemplo:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Recomendações
Primeiro, dê uma olhada na lista existente de coletores para garantir que você não esteja duplicando o trabalho. Tentamos garantir a máxima capacidade de reutilização, portanto, cada coletor realizando um único tipo de coleta permite uma maior mistura e correspondência de diferentes coletores durante a execução do teste.