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