Я из компании Luxoft.
Предисловие из поста: Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере. Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой сессии (запуска нового браузера или эмулятора) и останавливать его сразу же после закрытия сессии. Selenoid позволяет поддерживать высокую нагрузку без дополнительных ресурсозатрат. В этом посте будет запуск простых тестов в Android-эмуляторе. Предварительно проверьте что ваша система может запускать виртуальные машины. Аппаратная виртуализация должна поддерживаться вашим процессором. Это означает, что требуют­ся расширения процессора Intel­VT или AMD­V. Чтобы убедиться, поддерживает ли процессор одно из них, выполните команду: На вашей операционной системе обязательно должен быть установлен и запущен Docker. Если у вас Redhat-based операционная система, вы можете использовать мой репозиторий для установки Configuration manager. Если у вас не Redhat-based операционная система, то вы можете скачать и использовать бинарник Configuration manager. Если у вас нет прямого доступа в инет и docker образы вы скачиваете через registry: Если у вас есть прямой доступ в инет. Ключ --args "-session-attempt-timeout 2m -service-startup-timeout 2m" нужен если у вас apk большого размера долго устанавливается. Ключ --force перезаписывает файл browsers.json Так как Selenoid Configuration manager пока что не умеет формировать browsers.json для мобильного Chrome, то его нужно поправить самостоятельно. По умолчанию browsers.json формируется в директории ~/.aerokube/selenoid. Итоговый файл browsers.json для тестирования Android приложений и Chrome внутри Android эмулятора. Пока что версия мобильного хрома отстает от версии обычного хрома.
Скачиваем образ мобильного хрома При изменении файла browsers.json нужно перезагрузить selenoid Reloading configuration
Можно сделать Reloading configuration. Подробности по ссылке:
https://aerokube.com/selenoid/latest/#_reloading_configuration Проверяем что docker контейнер запустился и образы скачались.  Или Проверяем что docker контейнер запустился и образы скачались.  Заходим в selenoid-ui по адресу ip-где-вы-запускали-selenoid-и-selenoid-ui:8080 У вас должно быть гореть зеленым 2 слова CONNECTED и написано android и chrome.  Чтобы получить доступ из Android на хостовую нужно в тестах использовать полное или короткое имя виртуальной машины, где запускается selenoid. Чтобы узнать имя виртуальной машины просто используйте команду hostname. Скачиваем https://github.com/aerokube/demo-tests Во всех трех java файлах меняем путь в RemoteWebDriver на полное или короткое имя виртуальной машины, где запускается selenoid (надо поменять скриншот).  или на другой адрес, там где вы запустили selenoid. В файле AndroidRemoteApkTest.java меняем путь где можно скачать вашу APK. на device.setCapability("app", "http:/полное-или-короткое-имя-виртуальной-машины-где-запускается-selenoid/ваша-apk"); По этой ссылке http:/полное-или-короткое-имя-виртуальной-машины-где-запускается-selenoid/ваша-apk вы должны скачивать APK как с виртуальной машины так внутри docker образов (в том числе и android). Можно протестировать так: Если вы будете ссылаться на localhost из docker, то у вас будет вот такая ошибка, так как вы из сети docker пытаетесь обратиться к localhost основного сервера: Как сделать доступной для скачивания ваши локальные файлы будет ниже. В файле DemoTest.java добавляем setCapability для запуска chrome на Android чтобы получилось примерно так.  В каждом файле java вы можете включить или выключить запись видео, удаленный просмотр или управление через VNC и запись логов в файл. Чтобы выключить опцию нужно добавить 2 слеша в начало строки.  Чтобы сделать доступной для скачивания файлы из текущей директории, можно запустить в текущей консоли сервис static-server-in-dir: В директории demo-tests запускаем тесты: Если вам нужно указать настройки и у вас используется maven-прокси (Nexus, Artifactory) Если запускаем с прямым доступом в инет и без каких-либо настроек Общее время разворачивания android эмулятора и запуск 1 теста занимает меньше 1 минуты. https://github.com/aerokube/demo-tests/issues/5 AndroidDemoTest.java: AndroidRemoteApkTest.java: DemoTest.java: Appium — кроссплатформенный инструмент, т.е. позволяет писать тесты для мобильных платформ (iOS, Android, Windows), используя API. Это один из самых широко используемых инструментов для регрессионного тестирования приложений на смартфонах и планшетах. Скачиваем и запускаем Appium Идем в File --> New Session Window  В поле Remote host указываем адрес сервера, где запущен Selenoid. В поле Remote Port указываем port, на котором запущен Selenoid — обычно это 4444. В поле Remote Path указываем /wd/hub В Desired Capabiliting указываем нужные вам Capabilities. Минимальный JSON получается такой: После старта сессии у вас появится вот такая картина:  Теперь можно исследовать/искать нужные вам location.  Телеграм чаты: https://t.me/aerokube — chat Aerokube https://t.me/atinfo_chat — chat for test automation engineers DevOps-инженер