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