Сборщики показателей на устройстве

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

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

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

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

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

Реализация

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

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

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

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