В этом разделе описывается внутреннее устройство Tradefed и взаимосвязи между его компонентами. Более подробная информация содержится на соответствующих подстраницах.
Конфигурации тестов
В Tradefed конфигурации тестов описываются в формате XML. Понимание структуры конфигурации является ключевым моментом для запуска и настройки тестов.
Структура конфигураций TF
Глобальные конфигурации 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 платформенно-независимым способом.
Динамическая загрузка @опций
В некоторых случаях файлы, необходимые для теста или определенной операции, недоступны локально. Эта функция позволяет Tradefed получать эти файлы из удаленного местоположения, минуя поставщика сборки.