Os coletores de métricas orientados por host são executados no host, e não no dispositivo. Eles interagem com o dispositivo do lado do host para coletar as métricas que estão segmentação.
Design do coletor de métricas
A classe de 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 x execuções de teste
Os coletores seguem um gerador de relatórios de resultados porque eles sincronizam com a execução do teste no host. Em outras palavras, se os testes forem orientados por host, os coletores serão executados antes do segue para a próxima etapa de execução.
Por exemplo, se o coletor for executado em testEnded
, antes da execução
prossegue para o próximo teste com testStart
que os coletores vão executar.
Implementar um coletor de métricas orientado a host
Ao implementar na classe base BaseDeviceMetricCollector
, você
pode decidir quando coletar as métricas durante o ciclo de vida:
- Quando um teste é iniciado:
onTestRunStart
- Quando um caso de teste é iniciado:
onTestStart
- Quando um caso de teste termina:
onTestEnd
- Quando um teste termina:
onTestRunEnd
Executar a coleta assíncrona
Além dos métodos síncronos, o TF fornece uma classe de base para implementar
que realiza coletas assíncronas periódicas,
ScheduledDeviceMetricCollector,
que fornece um método collect
a ser implementado que será executado
periodicamente.
O período pode ser personalizado de acordo com as opções.
Configuração de XML
A tag de 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, confira a lista de coletores para garantir que você não está duplicando o trabalho. Tentamos garantir a máxima reutilização. Portanto, se cada coletor fizer um único tipo de coleta, será possível misturar e combinar diferentes coletores durante a execução do teste.