В этом разделе описываются внутренние устройства Tradefed и их взаимосвязь. Дополнительные сведения см. на связанных подстраницах.
1. Тестовая конфигурация (XML-конфигурации)
Обзор
Тестовые конфигурации в Tradefed описываются в формате XML. Понимание структуры конфигурации является ключом к запуску и настройке тестов.
Структура конфигураций TF
Глобальные конфигурации TF
Глобальная конфигурация — это специальная XML-конфигурация Tradefed, которая загружается при запуске Tradefed через переменную среды TF_GLOBAL_CONFIG
. Он загружает объекты, связанные с областью действия экземпляра Tradefed, которые влияют на общее поведение системы.
Сведения о глобальной конфигурации
хранилище ключей
Хранилище ключей позволяет вводить параметры командной строки в Tradefed из хранилища ключей, чтобы избежать прямого обращения к значению в командной строке. Это можно использовать для сокрытия паролей из командной строки путем прямого извлечения паролей из хранилища ключей.
2. Диспетчер устройств
Диспетчер устройств отвечает за отслеживание состояния устройств в работающем экземпляре Tradefed. Отслеживаются такие аспекты, как статус распределения и онлайн-статус.
3. Планировщик тестовых команд
Планировщик тестовых команд в Tradefed принимает команды для запуска, связывает их с устройствами и запускает тестовый вызов.
4. Провайдер сборки
Build Provider — это первый шаг любого вызова теста. Он загружает ресурсы, необходимые для настройки и запуска тестов (образы сборки, тестовые APK и т. д.). Он также ссылается на них в объекте BuildInfo
, который будет передан в тест. Локально доступные ресурсы также могут быть связаны в объекте BuildInfo
.
5. Подготовитель и очиститель мишеней
Target Preparer предлагает дополнительные действия, которые можно выполнить для настройки тестируемой цели в определенное состояние, например, перепрошивку устройства, настройку определенных свойств и подключение к Wi-Fi.
6. Тестировщик
Test Runner в Tradefed относится к объекту, ответственному за фактическое выполнение теста. Разные исполнители тестов управляют выполнением тестов по-разному; например, средство запуска тестов с инструментами будет сильно отличаться от средства выполнения тестов JUnit.
7. Отчет о результатах
Отчет о результатах в Tradefed относится к объекту, который будет отправлять результаты в определенное место назначения. Каждая реализация обычно специализирована для различных серверных частей результатов. А Result Reporter отвечает за преобразование формата результатов Tradefed в целевой формат.
Такая гибкая структура позволяет любому тесту отправлять отчеты в любое место назначения результатов и легко добавлять дополнительные тесты изолированным образом.
8. Сборщик метрик
Сборщик метрик — это специальный объект в Tradefed, ортогональный выполнению теста. Это позволяет собирать информацию в разных точках жизненного цикла теста (например, начало теста, конец теста). Поскольку коллектор не связан с самим тестом, точки можно менять местами, добавлять и удалять, не изменяя сам тест.
9. Настройка на уровне хоста
В этом разделе описываются настройки, применимые к полному запуску экземпляра Tradefed. Эти параметры влияют на поведение жгута в целом, чтобы адаптироваться к различным средам, например, к нахождению в сети с ограниченным доступом.
10. Дополнительные возможности
Следующие разделы описывают общее использование Tradefed, а не объектов Tradefed.
Трейд-шардинг
Если набор тестов большой или его выполнение занимает много времени, его можно разделить на несколько устройств. Мы называем это разделение шардингом . В этом разделе описывается, как работает шардинг и как он настраивается.
Использование SL4A
Tradefed поддерживает уровень сценариев для Android, SL4A; это набор инструментов автоматизации для вызова Android API независимым от платформы способом.
Динамическая загрузка @Option
В некоторых случаях файлы, необходимые для теста или какой-либо конкретной операции, недоступны локально. Эта функция позволяет Tradefed получать эти файлы из удаленного места без обращения к поставщику сборки.