Los recopiladores de métricas controlados por host se ejecutan en el host y no en el lado del dispositivo. Interactúan con el dispositivo desde el lado del host para recopilar las métricas a las que se dirigen.
Diseño de colector de métricas
La clase base que extenderán todos los recopiladores es BaseDeviceMetricCollector , que ayuda a proporcionar las mismas funcionalidades básicas compartidas:
- Filtración
- Deshabilitar
- Recopilación de casos de prueba frente a ejecuciones de prueba
Los recopiladores siguen un modelo de informador de resultados, ya que se sincronizan con la ejecución de la prueba en el host. En otras palabras, si las pruebas están dirigidas por host, los recopiladores se ejecutarán antes de que la prueba avance al siguiente paso de ejecución.
Por ejemplo, si el recopilador se ejecuta en testEnded
, antes de que la ejecución continúe con la siguiente prueba con testStart
, se ejecutarán los recopiladores.
Implementar un recopilador de métricas controlado por host
Al implementar sobre la clase base BaseDeviceMetricCollector
, puede decidir cuándo le gustaría recopilar sus métricas durante el ciclo de vida:
- Cuando comienza una ejecución de prueba:
onTestRunStart
- Cuando se inicia un caso de prueba:
onTestStart
- Cuando finaliza un caso de prueba:
onTestEnd
- Cuando finaliza una ejecución de prueba:
onTestRunEnd
Cómo hacer una colección asíncrona
Además de los métodos síncronos, TF proporciona una clase base para implementar que realiza una recopilación asincrónica periódica, ScheduledDeviceMetricCollector , que proporciona un método de collect
que se implementará y que se ejecutará periódicamente.
El período es personalizable por opciones.
Configuración XML
La etiqueta del objeto será metrics_collector
, por ejemplo:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Recomendaciones
Primero eche un vistazo a la lista existente de recopiladores para asegurarse de que no está duplicando el trabajo. Intentamos garantizar la máxima reutilización, por lo que hacer que cada colector realice un solo tipo de recolección permite una mayor combinación y combinación de diferentes colectores durante la ejecución de la prueba.