Сборщики метрик, управляемые хостом, работают на хосте, а не на стороне устройства. Они взаимодействуют с устройством со стороны хоста, чтобы собирать метрики, на которые они нацелены.
Проектирование сборщика метрик
Базовым классом, расширяющим все сборщики, является 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>
Рекомендации
Посмотрите на существующий список сборщиков , чтобы убедиться, что вы не дублируете работу. Мы стараемся обеспечить максимальную возможность повторного использования, поэтому выполнение каждым сборщиком одного типа сбора позволяет больше смешивать и сопоставлять различные сборщики во время выполнения теста.