При запуске тестов на стороне устройства (например, инструментарий, тесты UI Automator) сборщики на стороне хоста могут быть неидеальны, поскольку сложно синхронизировать сбор метрик с тестом, запущенным на устройстве. Например, снимок экрана, сделанный асинхронно, скорее всего, не попадет на нужный экран и будет бесполезен.
Для удовлетворения этих вариантов использования существует версия наших коллекторов на стороне устройства, которая может использоваться в любом инструменте AndroidJUnitRunner
. BaseMetricListener
может быть реализован для автоматического предоставления отчетов о метриках, которые собираются способом, полностью совместимым с конвейером отчетов Tradefed.
Эта библиотека отделена от самого Tradefed и может использоваться без Tradefed.
Если вы используете AndroidJUnitTest
runner от Tradefed, вы можете указать следующую опцию командной строки, чтобы ваш сборщик запускался вместе с вашими тестами:
--device-listeners android.device.collectors.ScreenshotListener
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
Выполнение
При реализации поверх базового класса BaseMetricListener
вы можете выбрать, когда вы хотите собирать метрики в течение жизненного цикла инструментария:
- Когда начинается тестовый запуск:
onTestRunStart
- Когда начинается тестовый случай:
onTestStart
- Когда тестовый случай заканчивается:
onTestEnd
- Если тестовый случай не пройден:
onTestFail
- Когда тестовый прогон заканчивается:
onTestRunEnd
Взаимодействие
Сбор метрик на стороне устройства выполняется синхронно с выполнением самого инструментирования, а метрики передаются обратно в результаты инструментирования и анализируются Tradefed для включения в отчет как часть вызова.