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