Os coletores de métricas orientados por host são executados no host, não no dispositivo. Eles interagem com o dispositivo do lado do host para coletar as métricas que estão segmentando.
Design do coletor de métricas
A classe base que todos os coletores estendem é BaseDeviceMetricCollector
, que ajuda a fornecer as mesmas funcionalidades básicas compartilhadas:
- Filtragem
- Desativando
- Coleta em casos de teste x execuções de teste
Os coletores seguem um modelo de gerador de relatórios de resultados porque são sincronizados com a execução do teste no host. Em outras palavras, se os testes forem controlados pelo host, os coletores serão executados antes que o teste avance para a próxima etapa de execução.
Por exemplo, se o coletor for executado em testEnded
, ele será executado
antes da execução passar para o próximo teste com testStart
.
Implementar um coletor de métricas orientado por host
Ao implementar na classe de base BaseDeviceMetricCollector
, você pode decidir quando coletar as métricas durante o ciclo de vida:
- 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 uma execução de teste termina:
onTestRunEnd
Fazer coleta assíncrona
Além dos métodos síncronos, o TF fornece uma classe base para implementar
que realiza coleta assíncrona periódica,
ScheduledDeviceMetricCollector
,
que fornece um método collect
a ser implementado e executado
periodicamente.
O período pode ser personalizado por opções.
Configuração de XML
A tag do objeto é metrics_collector
. Por exemplo:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Recomendações
Confira a lista de coletores para não duplicar o trabalho. Tentamos garantir a máxima reutilização. Por isso, ter cada coletor realizando um único tipo de coleta permite mais mistura e correspondência de diferentes coletores durante a execução do teste.