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