Обзор архитектуры торговой федерации

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

SL4A с данными Tradefed

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

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

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