Сборщик метрик на основе хоста

Сборщики метрик, управляемые хостом, работают на хосте, а не на стороне устройства. Они взаимодействуют с устройством со стороны хоста для сбора целевых показателей.

Проектирование коллектора метрик

Базовый класс, который будут расширять все сборщики, — это 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>

Рекомендации

Сначала взгляните на существующий список сборщиков, чтобы убедиться, что вы не дублируете работу. Мы стараемся обеспечить максимальную возможность повторного использования, поэтому выполнение каждым сборщиком одного типа сбора позволяет лучше смешивать и сопоставлять различные сборщики во время выполнения теста.