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

При запуске тестов на стороне устройства (например, инструментальных тестов или тестов UI Automator) сборщики данных на стороне хоста могут быть неэффективны, поскольку сбор метрик сложно синхронизировать с тестом, запущенным на устройстве. Например, асинхронно сделанный снимок экрана, скорее всего, не попадёт на нужный экран и будет бесполезен.

Для решения этих задач существует версия наших сборщиков на стороне устройства, которую можно использовать в любом инструменте AndroidJUnitRunner . BaseMetricListener можно реализовать для автоматической отправки метрик, собранных способом, полностью совместимым с конвейером отчётности Tradefed.

Эта библиотека отделена от самого Tradefed и может использоваться без Tradefed.

Если вы используете средство запуска AndroidJUnitTest от Tradefed, вы можете указать следующий параметр командной строки, чтобы ваш сборщик запускался вместе с вашими тестами:

  --device-listeners android.device.collectors.ScreenshotListener
  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

Выполнение

При реализации на основе базового класса BaseMetricListener вы можете выбрать, когда вы хотите собирать свои метрики в течение жизненного цикла инструментария:

  • При запуске тестового прогона: onTestRunStart
  • При запуске тестового случая: onTestStart
  • Когда тестовый случай заканчивается: onTestEnd
  • Если тестовый случай не пройден: onTestFail
  • Когда тестовый запуск заканчивается: onTestRunEnd

Взаимодействие

Сбор метрик на стороне устройства производится синхронно с выполнением самого инструментария, а метрики передаются обратно в результаты инструментирования и анализируются Tradefed для включения в отчет в рамках вызова.