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