Приложение Cloud Orchestration предоставляет высокопроизводительный и масштабируемый способ управления экземплярами Cuttlefish, особенно для виртуальных устройств на базе ARM (CHD). OmniLab ATS поддерживает Cloud Orchestration, что позволяет запускать тесты на виртуальных устройствах. Перед началом использования виртуальных устройств выполните действия, описанные в инструкции OmniLab Android Test Station, для установки OmniLab ATS.
Обзор
Облачная оркестровка позволяет OmniLab ATS делегировать управление экземплярами Cuttlefish выделенной службе облачной оркестровки. Такой подход предлагает ряд преимуществ по сравнению с существующими локальными и удаленными режимами, сохраняя при этом привычный пользовательский интерфейс:
- Параллельный запуск экземпляров: позволяет запускать несколько экземпляров Cuttlefish одновременно, значительно сокращая время ожидания до начала тестирования.
- Масштабируемость: подходит для крупномасштабных сред тестирования.
- Изоляция ресурсов: Обеспечивает разделение среды выполнения тестов (рабочего процесса ATS) от среды эмуляции устройства.
Предварительные требования
- Хост-машина, способная запускать Docker.
- Доступ к образам Docker для оркестрации Cuttlefish
Настройте службу Cloud Orchestrator.
Сервис Cloud Orchestrator управляет жизненным циклом экземпляров Cuttlefish. Вы можете развернуть этот сервис в различных средах, и он поддерживает как архитектуры x86, так и ARM:
- Тот же хост, что и у рабочего процесса ATS: работает в контейнере Docker на той же машине.
- Отдельная машина: работает на локальном сервере, способном запускать Docker.
- Облачный экземпляр: работает на виртуальной машине в облачной среде, например, в Google Compute Engine.
Установите и настройте службу.
Для запуска сервиса следуйте инструкциям в файле README Cloud Android Orchestration .
Аутентификация и права доступа
Если служба Cloud Orchestrator запущена на удаленной машине, убедитесь, что у рабочего хоста ATS есть необходимые разрешения для доступа к ней через HTTP-запросы. Если HTTP-соединение запрещено, может потребоваться настройка переадресации портов SSH. Подробности см. в разделе «Попробуйте Cloud Orchestrator» .
Ожидаемое состояние
После успешного запуска службы Cloud Orchestrator она должна быть доступна по протоколу HTTP. Вы можете проверить её состояние, отправив запрос к её API:
- Проверьте доступность сервиса: Вы должны иметь возможность связаться с конечной точкой сервиса с рабочего хоста OmniLab ATS. Например, выполнение
curl -I http://localhost:8080/v1/zones/local/hostsдолжно вернуть успешный HTTP-ответ (либоHTTP/1.1 200 OK, либо302 Foundс перенаправлением на/username), подтверждающий, что сервис активен и доступен.
Настройка OmniLab ATS для облачной оркестровки
Перед запуском OmniLab ATS убедитесь, что все экземпляры Cuttlefish на рабочем хосте OmniLab ATS остановлены. OmniLab ATS автоматически запускает и останавливает виртуальные устройства во время тестового цикла, и существующие экземпляры Cuttlefish могут конфликтовать с экземплярами, управляемыми OmniLab ATS. Подробную информацию об остановке экземпляров Cuttlefish см. в разделе «Остановка Cuttlefish» .
Для включения облачной оркестровки в OmniLab ATS передайте определенные флаги при запуске OmniLab ATS:
mtt start --use_cloud_orchestrator \
--cloud_orchestrator_service_url=http://HOST:PORT \
--max_local_virtual_devices N \
--use_host_network-
--use_cloud_orchestrator: Включает функцию облачной оркестровки. -
--cloud_orchestrator_service_url: Указывает URL-адрес, по которому служба Cloud Orchestrator прослушивает запросы, например,http://localhost:8080. -
--max_local_virtual_devices: Задает максимальное количество виртуальных устройств, которые OmniLab ATS может одновременно выделить. Значение по умолчанию — 0. -
--use_host_network: Использует сетевое пространство имен хоста для контейнера. Это необходимо для доступа к службе Cloud Orchestrator.
Проведите тестирование с использованием устройств, работающих в облаке.
В этом разделе описаны шаги по запуску теста на виртуальных устройствах, управляемых облачной инфраструктурой.
Выберите устройства
В списке устройств OmniLab ATS отображает виртуальные устройства, управляемые облаком, в качестве заполнителей вместо их фактических серийных номеров. Заполнители отображаются в формате HOSTNAME:PORT (например, thehostname:6520 ). Состояния — «Доступно» или «Выделено» . Заполнитель в состоянии «Доступно» указывает на то, что виртуальное устройство не запущено и может быть выделено для тестирования.

Рисунок 1. Выбор виртуальных устройств, управляемых облачными ресурсами.
Добавить действия устройства
Когда на этих устройствах планируется тестирование, ATS автоматически добавляет необходимые действия для устройства, чтобы обеспечить и управлять экземплярами Cuttlefish в течение цикла тестирования.

Рисунок 2. Действия автоматического устройства.
Установить тестовые ресурсы
При планировании тестирования необходимо указать требуемые тестовые ресурсы. В разделе «Установка тестовых ресурсов» убедитесь, что загруженные файлы сопоставлены с правильными именами ресурсов:
- Сопоставьте пакет инструментов хоста, например,
cvd-host_package.tar.gz, с именемcvd_host_package. - Сопоставьте ZIP-архив образа устройства с именем
cvd_device_image.

Рисунок 3. Сопоставление тестовых ресурсов.
Просмотрите результаты тестовых запусков и журналы.
После завершения теста вы можете просмотреть журналы в разделе выходных файлов. Для экземпляров, управляемых Cloud Orchestrator, собираются следующие журналы:
-
launcher.log: Журналы запуска Cuttlefish -
kernel.log: Стандартный лог ядра Android