Управляемые хостом сборщики метрик работают на хосте, а не на стороне устройства. Они взаимодействуют с устройством со стороны хоста для сбора целевых показателей.
Дизайн сборщика метрик
Базовым классом, который будут расширять все сборщики, является BaseDeviceMetricCollector , который помогает обеспечить те же общие базовые функции:
- Фильтрация
- Отключение
- Сбор тестов по сравнению с тестовыми прогонами
Сборщики следуют модели отчета о результатах , поскольку они синхронизируются с выполнением теста на хосте. Другими словами, если тесты управляются хостом, сборщики будут выполняться до того, как тест перейдет к следующему этапу выполнения.
Например, если сборщик выполняется на testEnded
, прежде чем выполнение перейдет к следующему тесту с testStart
, будут выполнены сборщик(и).
Внедрение управляемого хостом сборщика метрик
При реализации поверх базового класса BaseDeviceMetricCollector
вы можете решить, когда вы хотите собирать свои метрики в течение жизненного цикла:
- Когда начинается тестовый прогон:
onTestRunStart
- Когда начинается тестовый пример:
onTestStart
- Когда тестовый пример заканчивается:
onTestEnd
- Когда тестовый прогон заканчивается:
onTestRunEnd
Как сделать асинхронный сбор
В дополнение к синхронным методам TF предоставляет базовый класс для реализации, который выполняет периодический асинхронный сбор, ScheduledDeviceMetricCollector , который предоставляет реализуемый метод collect
, который будет запускаться периодически.
Период настраивается опциями.
XML-конфигурация
Тег объекта будет metrics_collector
, например:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Рекомендации
Сначала взгляните на существующий список сборщиков , чтобы убедиться, что вы не дублируете работу. Мы стараемся обеспечить максимальное повторное использование, поэтому каждый сборщик, выполняющий один тип сбора, позволяет больше смешивать и сопоставлять разные сборщики во время выполнения теста.