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

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

Обмен шардинга

Если корпус тестов большой или выполнение занимает много времени, его можно разделить на несколько устройств. Мы называем это разделение шардингом . В этом разделе описывается, как работает шардинг и как он настраивается.

Детали шардинга

Использование SL4A

Tradefed поддерживает уровень сценариев для Android, SL4A; это набор инструментов автоматизации для вызова API-интерфейсов Android независимым от платформы способом.

SL4A с деталями Tradefed

Динамическая загрузка @option

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

Динамическая загрузка @option