Торговая архитектура

В этом разделе описывается внутреннее устройство 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 платформенно-независимым способом.

SL4A с данными Tradefed

Динамическая загрузка @опций

В некоторых случаях файлы, необходимые для теста или определенной операции, недоступны локально. Эта функция позволяет Tradefed получать эти файлы из удаленного местоположения, минуя поставщика сборки.

Динамическая загрузка @опций