Настройка эмулятора для запуска UI-автотестов
UI-автотесты можно запускать на эмуляторе начиная с версии 5.1.5.
Эмулятору должен быть выделен IP-адрес в одной подсети с хостом для подключения к виртуальной машине по стандартному порту 22, а не по 2223, как это реализовано по умолчанию после установки.
Перед настройкой эмулятора необходимо убедиться, что:
- Аврора SDK установлен в директорию по умолчанию
~/AuroraOS. - Виртуальная машина эмулятор остановлена.
- В системе отсутствуют следы от установок предыдущих версий Аврора SDK.
Сначала должна быть настроена виртуальная машина, затем настроен сам эмулятор:
Настройка виртуальной машины VirtualBox
Описанная ниже настройка актуальна для VirtualBox версии 7.1.6. Пользовательский интерфейс и команды могут отличаться, если на момент прочтения данной инструкции актуальной будет другая версия VirtualBox.
Если по какой-то причине сетевой адаптер №3 у виртуальной машины эмулятора включён и настроен, его следует отключить:
AURORA_EMULATOR_VM_NAME=$(vboxmanage list vms | grep AuroraOS | cut -d " " -f 1 | tr -d '"')
vboxmanage modifyvm $AURORA_EMULATOR_VM_NAME --nic3 none
Есть два варианта настройки эмулятора:
- Добавление нового подключения типа Сетевой мост
- Добавление нового подключения типа Виртуальный адаптер
Добавление нового подключения типа "Сетевой мост"
Подключение типа "Сетевой мост" даёт возможность выделить IP-адрес эмулятору в одной подсети с хостом (как правило 192.168.1.X или 192.168.0.X, зависит от настроек роутера). Этот вариант больше подходит для домашней сети.
Выделение IP-адреса для эмулятора — процесс нестабильный. Иногда после создания нового сетевого адаптера и запуска виртуальной машины IP-адреса на эмуляторе нет. В данной ситуации можно выполнить удаление созданного сетевого адаптера, перезагрузить хост и повторить настройку виртуальной машины.
Для добавления нового подключения в настройках виртуальной машины эмулятора следует включить сетевой адаптер №3 со следующими параметрами:
- Тип подключения — выбрать Сетевой мост.
- Имя — выбрать сетевой интерфейс, по которому к роутеру подключён хост.
Например, для ноутбука, подключённого по WiFi, это будет беспроводной интерфейс
wlo1. Уточнить имя сетевого интерфейса можно командамиip routeиvboxmanage list bridgedifs. Подсеть, к которой подключён хост, будет использоваться для автоматического выделения IP-адреса для виртуальной машины эмулятора. - Тип адаптера — стабильно показал себя вариант Intel PRO/1000 MT Server (82545EM).
- Неразборчивый режим — выбрать Разрешить всё.
- MAC-адрес — сгенерировать новый.

Автоматизация настройки сетевого интерфейса Сетевой мост:
AURORA_EMULATOR_VM_NAME=$(vboxmanage list vms | grep AuroraOS | cut -d " " -f1| tr -d '"')
BRIDGED_INTERFACE=$(ip route | grep default | awk '{print $5}')
vboxmanage modifyvm $AURORA_EMULATOR_VM_NAME \
--nic3 bridged \
--bridgeadapter3 $BRIDGED_INTERFACE \
--nictype3 82545EM \
--nicpromisc3 allow-all \
--macaddress3 auto \
--cableconnected3 on
Добавление нового подключения типа "Виртуальный адаптер"
В отличие от подключения типа "Сетевой мост", где выделяемые в подсети IP-адреса зависят от настроек роутера, у виртуального адаптера подсеть заранее известна и определяется настройками VirtualBox.
-
Сначала следует убедиться, что в настройках VirtualBox создан подходящий сетевой интерфейс. Для этого в окне менеджера VirtualBox следует открыть раздел Инструменты → Сеть и перейти на вкладку Виртуальные сети. Если виртуальные сети отсутствуют, следует нажать кнопку Создать. В результате создастся сетевой интерфейс с именем
vboxnetN(гдеN– 0, 1, 2 и т.д., каждое последующее нажатие кнопки увеличивает индекс в имени интерфейса на 1).
Для интерфейса
vboxnet0на вкладке Адаптер по умолчанию используется подсеть 192.168.56.XXX, дляvboxnet1— 192.168.57.XXX, дляvboxnet2— 192.168.58.XXX, и т.д. -
Далее для выбранного интерфейса необходимо перейти на вкладку DHCP сервер и задать параметры выделения IP-адресов в созданной виртуальной сети. Установить чекбокс Включить сервер и принять значения по умолчанию. В этом случае IP-адрес эмулятора будет выделяться в подсети 192.168.56.XXX в диапазоне от 3 до 254:

-
В настройках виртуальной машины эмулятора включить сетевой адаптер №3 со следующими параметрами:
- Тип подключения — выбрать Виртуальный адаптер.
- Имя — выбрать сетевой интерфейс
vboxnet0. - Тип адаптера — стабильно показал себя вариант Intel PRO/1000 MT Server (82545EM).
- Неразборчивый режим — выбрать Разрешить всё.
- MAC-адрес — сгенерировать новый.

Автоматизация настройки сетевого интерфейса Виртуальный адаптер:
if [[ -z $(vboxmanage list hostonlyifs) ]]; then vboxmanage hostonlyif create; fi vboxmanage hostonlyif ipconfig "vboxnet0" --ip 192.168.56.1 --netmask 255.255.255.0 vboxmanage dhcpserver modify \ --ifname "vboxnet0" \ --ip 192.168.56.1 \ --netmask 255.255.255.0 \ --lowerip 192.168.56.3 \ --upperip 192.168.56.254 \ --enable AURORA_EMULATOR_VM_NAME=$(vboxmanage list vms | grep AuroraOS | cut -d " " -f 1 | tr -d '"') vboxmanage modifyvm $AURORA_EMULATOR_VM_NAME \ --nic3 hostonly \ --hostonlyadapter3 vboxnet0 \ --nictype3 82545EM \ --nicpromisc3 allow-all \ --macaddress3 auto \ --cableconnected3 on
Настройка эмулятора
-
При необходимости (актуально для автотестов) выключить отображение GUI для эмулятора:
vboxmanage modifyvm $AURORA_EMULATOR_VM_NAME --defaultfrontend headless -
Проверить, что эмулятору на третьем сетевом адаптере eth2 (индексация начинается с нуля) выделился IP-адрес в одной подсети с хостом:
~/AuroraOS/bin/sfdk emulator start ~/AuroraOS/bin/sfdk emulator exec bash -c "/usr/sbin/ip a show eth2 | grep inet | grep -v inet6 | cut -d ' ' -f 6 | cut -d '/' -f 1"Результатом выполнения последней команды должен быть IP-адрес эмулятора, по которому в дальнейшем будет осуществляться подключение через qtium-driver. Например:
- Для подключения типа Сетевой мост: 192.168.1.20.
- Для подключения типа Виртуальный адаптер: 192.168.56.8.
Здесь в вызове
sfdk emulator execуказан полный путь к командеip, т.к. по умолчанию в переменной окруженияPATHна эмуляторе доступны лишь 3 директории, в число которых/usr/sbin/не входит:~/AuroraOS/bin/sfdk emulator exec bash -c "env | grep PATH" PATH=/usr/local/bin:/bin:/usr/binЭтот адрес потребуется в дальнейшем при конфигурации запуска автотестов.
-
После включения этих опций виртуальную машину эмулятора следует перезапустить для применения изменений.
-
Добавить в SSH-агент приватный ключ
sdk, который создаётся во время установки Аврора SDK:ssh-add ~/AuroraOS/vmshare/ssh/private_keys/sdk -
Убедиться, что ввод команды подключения к эмулятору не требует ввода пароля. Например, если эмулятору выделился IP-адрес 192.168.56.37:
ssh defaultuser@192.168.56.37 -
На устройстве в приложении Настройки в разделе Средства разработчика убедиться, что Режим разработчика включён. Если по каким-либо причинам он выключен, то включить его вручную или командой:
~/AuroraOS/bin/sfdk emulator exec -tt bash -c "sudo gdbus call --system --dest ru.omp.developermode --object-path / --method ru.omp.developermode.SetEnabled true" -
В настройках режима разработчика активировать опцию Разрешить автотестирование пользовательского интерфейса. Если опция включена — то выключить и включить заново.

Эта настройка нужна для поддержки автоматического UI-тестирования QT/QML приложений, запущенных в песочнице.
Действие можно выполнить командой:
~/AuroraOS/bin/sfdk emulator exec -tt bash -c "sudo gdbus call --system --dest ru.omp.developermode --object-path / --method ru.omp.developermode.SetAutoTestUIEnabled false" ~/AuroraOS/bin/sfdk emulator exec -tt bash -c "sudo gdbus call --system --dest ru.omp.developermode --object-path / --method ru.omp.developermode.SetAutoTestUIEnabled true"Т.е. выключение опции Разрешить автотестирование пользовательского интерфейса останавливает службу qtium-bridge, а включение — запускает её.
-
Также для удобства отладки можно включить отображение касаний:
~/AuroraOS/bin/sfdk emulator exec -tt bash -c "dconf write /desktop/lipstick-jolla-home/touch-tracker/enabled 'true'" -
Для вступления изменений в силу необходимо перезапустить эмулятор:
~/AuroraOS/bin/sfdk emulator stop; ~/AuroraOS/bin/sfdk emulator start -
После перезагрузки нужно убедиться, что служба qtium-bridge на эмуляторе запущена и работает корректно:
~/AuroraOS/bin/sfdk emulator exec -tt bash -c "sudo systemctl status qtium-bridge"Служба должна быть включена и запущена. Например:
● qtium-bridge.service - qtium-bridge appium service Loaded: loaded (/usr/lib/systemd/system/qtium-bridge.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2025-03-28 17:01:30 MSK; 3min 40s ago Main PID: 1281 (qtium-bridge) Memory: 1.9M CGroup: /system.slice/qtium-bridge.service └─1281 /usr/bin/qtium-bridge