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