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

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

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

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

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

  --device-listeners android.device.collectors.ScreenshotListener

ПРЕДОСТЕРЕЖЕНИЕ. Чтобы классы сборщиков разрешались во время выполнения, ваш инструментальный APK, скорее всего, должен будет включить их статически, добавив в make-файл следующее:

  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

Выполнение

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

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

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

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