OmniLab ATS поддерживает виртуальные устройства Cuttlefish , которые позволяют выполнять тесты без физических устройств Android. Cuttlefish подходит для тестирования аппаратно-независимых функций. Прежде чем начать использовать виртуальные устройства, следуйте руководству пользователя по установке OmniLab ATS.
OmniLab ATS поддерживает виртуальные устройства в двух режимах: локальном и удаленном. В следующей таблице представлено сравнение двух режимов.
Локальные виртуальные устройства | Удаленные виртуальные устройства |
---|---|
Работает на рабочих хостах ATS | Запускается на удаленных хостах, к которым рабочие хосты ATS могут получить доступ через SSH. |
на базе x86 | Может быть x86 или ARM в зависимости от архитектуры хостов. |
Легче настроить | Более сложная настройка |
Локальные и удаленные виртуальные устройства можно включать независимо. Подробную информацию о каждом режиме см.:
Настройка локальных виртуальных устройств
В этом разделе описаны шаги по настройке OmniLab ATS для локальных виртуальных устройств.
Установите зависимости Cuttlefish
Выполните следующую команду, чтобы убедиться, что необходимые модули ядра загружены:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Запустите OmniLab ATS с локальными виртуальными устройствами.
Перед запуском OmniLab ATS убедитесь, что все экземпляры Cuttlefish остановлены. OmniLab ATS автоматически запускает и останавливает виртуальные устройства во время цикла тестирования, а существующие экземпляры Cuttlefish конфликтуют с экземплярами, управляемыми OmniLab ATS. Подробную информацию об остановке экземпляров Cuttlefish см. в разделе Stop Cuttlefish .
Чтобы включить локальные виртуальные устройства, запустите:
mtt start --max_local_virtual_devices N
N
— максимальное количество виртуальных устройств, которые OmniLab ATS может одновременно выделить. Число по умолчанию — 0.
Если команда не выполнена из-за отсутствия узлов устройства, выполните действия, указанные в сообщении об ошибке, чтобы загрузить модули ядра. Если ошибка по-прежнему не удается, перезагрузите компьютер.
Настройка удаленных виртуальных устройств
В этом разделе описаны шаги по настройке OmniLab ATS для удаленных виртуальных устройств.
Установите зависимости Cuttlefish
Чтобы установить зависимости Cuttlefish, выполните следующие действия.
Установите пакеты Debian на удаленный хост , выполнив действия, описанные в разделе Cuttlefish > Начало работы .
Настройте максимальное количество виртуальных устройств на удаленном хосте, выполнив следующие действия:
- Отредактируйте
/etc/default/cuttlefish-host-resources
с правами root. - Установите для
num_cvd_accounts
максимальное количество виртуальных устройств, которое можно разрешить на этом хосте. - Запустите
sudo systemctl restart cuttlefish-host-resources
. - Запустите
ifconfig
и проверьте количество интерфейсовcvd-wtap-*
.
- Отредактируйте
Создать учетную запись SSH
Поскольку хост OmniLab ATS подключается к удаленному хосту через SSH, необходимо подготовить учетную запись SSH на удаленном хосте . Поскольку OmniLab ATS управляет файлами в каталоге HOME, мы рекомендуем вам создать специальную учетную запись.
Хосту OmniLab ATS требуется пара ключей SSH для входа на удаленный хост без пароля. Следующие шаги описывают, как настроить ключи SSH:
- Чтобы сгенерировать закрытый и открытый ключи, запустите
ssh-keygen
на хосте OmniLab ATS . - Загрузите и добавьте открытый ключ в
~/.ssh/authorized_keys
на удаленном хосте .
Если ваша учетная запись SSH отличается от той, которая используется для установки зависимостей Cuttlefish, чтобы разрешить учетной записи SSH запускать Cuttlefish, запустите эту команду на удаленном хосте :
sudo usermod -aG kvm,cvdnetwork,render $USER
Запустите OmniLab ATS с удаленными виртуальными устройствами.
Перед запуском OmniLab ATS убедитесь, что все экземпляры Cuttlefish остановлены. OmniLab ATS автоматически запускает и останавливает виртуальные устройства во время цикла тестирования, а существующие экземпляры Cuttlefish конфликтуют с экземплярами, управляемыми OmniLab ATS. Подробную информацию об остановке экземпляров Cuttlefish см. в разделе Stop Cuttlefish .
Для повышения производительности рекомендуется настроить хост OmniLab ATS и удаленный хост в локальной сети.
Чтобы включить удаленные виртуальные устройства, выполните следующую команду на хосте OmniLab ATS :
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
— имя учетной записи SSH.
HOST
— это IPv4-адрес удаленного хоста.
N
— максимальное количество виртуальных устройств, которые OmniLab ATS может одновременно выделить.
KEY
— это путь к частному ключу SSH на хосте OmniLab ATS .
Команда проверяет соединение с удаленным хостом перед запуском OmniLab ATS. Если отображается предупреждающее сообщение, например: The specified --remote_virtual_devices and --remote_ssh_key are invalid.
на консоли вам следует проверить настройку SSH.
Во избежание конфликтов ресурсов хост OmniLab ATS может подключаться не более чем к одному удаленному хосту. Несколько хостов OmniLab ATS не могут одновременно подключаться к одному удаленному хосту.
Запустите тест с виртуальными устройствами
В этом разделе описаны шаги по запуску теста на локальных или удаленных виртуальных устройствах.
Выберите устройства
В списке устройств OmniLab ATS отображает виртуальные устройства в качестве заполнителей вместо их фактических серийных номеров. Заполнители отображаются в формате HOSTNAME:local-virtual-device-ID для локальных виртуальных устройств; удаленный-виртуальный-АДРЕС-ИД для удаленных виртуальных устройств. Состояния либо Доступны , либо Выделены . Заполнитель в состоянии «Доступно» указывает, что виртуальное устройство не работает и его можно выделить для теста.
Рисунок 1. Выбор виртуальных устройств
Добавить действия с устройством
Если вы выберете хотя бы одно виртуальное устройство, соответствующее действие устройства должно быть добавлено в список автоматически. Действие состоит из необходимых параметров TradeFed и тестовых ресурсов для создания виртуальных устройств.
Рисунок 2. Действия устройства для локальных виртуальных устройств
Рисунок 3. Действия устройства для удаленных виртуальных устройств
Установить тестовые ресурсы
Виртуальным устройствам Cuttlefish требуются три тестовых ресурса: инструменты виртуальной машины, образы и облако . В типичной сборке Cuttlefish (например, aosp_cf_x86_64_phone
на ci.android.com ) инструменты виртуальной машины упакованы в cvd-host_package.tar.gz
, а образы — в aosp_cf_x86_64_phone-img-*.zip
. Бинарный файл Acloud встроен в OmniLab ATS и совместим со всеми версиями Cuttlefish. URL-адрес загрузки двоичного файла Acloud по умолчанию необходимо изменить только в целях отладки.
Рисунок 4. Тестовые ресурсы для виртуальных устройств
Посмотреть тестовые запуски
Журналы устройства, включая kernel.log
, host_log.txt
и launcher.log
, собираются в папке выходных файлов. Нажмите «Просмотреть выходные файлы», чтобы просмотреть их.
Рисунок 5. Результаты тестового запуска