В этом разделе описывается внутреннее устройство Tradefed и его взаимосвязь. Подробнее см. на связанных подстраницах.
Тестовые конфигурации
Конфигурации тестов в Tradefed описываются в формате XML. Понимание структуры конфигурации имеет ключевое значение для запуска и настройки тестов.
Структура конфигураций ТФ
Глобальные конфигурации TF
Файл глобальной конфигурации — это специальная XML-конфигурация Tradefed, которая загружается при запуске Tradefed через переменную окружения TF_GLOBAL_CONFIG
. Он загружает объекты, относящиеся к области действия экземпляра Tradefed, которые влияют на общее поведение системы.
Подробности глобальной конфигурации
Хранилище ключей
Хранилище ключей позволяет внедрять параметры командной строки из хранилища ключей в Tradefed, чтобы избежать прямого обращения к значению в командной строке. Это можно использовать для сокрытия паролей в командной строке, извлекая их напрямую из хранилища ключей.
Диспетчер устройств
Диспетчер устройств отвечает за отслеживание состояния устройств в работающем экземпляре Tradefed. Отслеживаются такие аспекты, как статус распределения и статус подключения к сети.
Планировщик тестовых команд
Планировщик тестовых команд в Tradefed принимает команды для запуска, связывает их с устройствами и запускает тестовый вызов.
Поставщик сборки
Поставщик сборки — это первый шаг любого вызова теста. Он загружает ресурсы, необходимые для настройки и запуска тестов (образы сборки, тестовые APK-файлы и т.д.). Он также ссылается на них в объекте BuildInfo
, который будет передан тесту. Локально доступные ресурсы также можно связать с объектом BuildInfo
.
Средство для подготовки и очистки мишеней
Подготовитель цели предлагает дополнительные действия, которые можно выполнить для настройки тестируемой цели в определенное состояние, например, перепрошивку устройства, настройку определенных свойств и подключение к Wi-Fi.
Тест-бегун
В Tradefed термин «исполнитель тестов» относится к объекту, отвечающему за фактическое выполнение теста. Разные исполнители тестов управляют выполнением тестов по-разному; например, исполнитель инструментальных тестов будет сильно отличаться от исполнителя тестов JUnit.
Репортер результатов
В Tradefed генератор отчетов о результатах — это объект, который отправляет результаты по определённому адресу. Каждая реализация обычно специализирована для разных бэкендов. Генератор отчетов о результатах отвечает за преобразование формата результатов Tradefed в формат назначения.
Такая гибкая конструкция позволяет отправлять результаты любого теста в любое место назначения и легко добавлять дополнительные тесты изолированным образом.
Сборщик метрик
Сборщик метрик — это специальный объект в Tradefed, ортогональный к выполнению теста. Он позволяет собирать информацию на разных этапах жизненного цикла теста (например, в начале и в конце теста). Поскольку сборщик метрик отделен от самого теста, точки можно менять местами, добавлять и удалять без необходимости изменения самого теста.
Настройка на уровне всего хоста
В этом разделе описываются настройки, применимые к полноценной работе экземпляра Tradefed. Эти параметры влияют на поведение всей системы в целом, позволяя адаптироваться к различным условиям, например, к работе в сети с ограниченным доступом.
Дополнительные возможности
В следующих разделах описывается общее использование Tradefed, а не объектов Tradefed.
Шардинг Tradefed
Если тестовый корпус большой или его выполнение занимает много времени, его можно разделить на несколько устройств. Мы называем такое разделение шардингом . В этом разделе описывается принцип работы шардинга и его настройка.
Использование SL4A
Tradefed поддерживает уровень сценариев для Android, SL4A; это набор инструментов автоматизации для вызова API Android независимо от платформы.
Динамическая загрузка @option
В некоторых случаях файлы, необходимые для теста или какой-либо конкретной операции, недоступны локально. Эта функция позволяет Tradefed получать эти файлы из удалённого расположения, минуя поставщика сборки.