При запуске тестов на стороне устройства (например, инструментальных тестов или тестов 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 для создания отчета в рамках вызова.