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