Noveo

Наш блог Как запустить тесты в Selenoid на Windows

Как запустить тесты в Selenoid на Windows

Как приручить Selenoid, работая на винде? Пошаговая инструкция от TechLead’a отдела тестирования NoveoNsk Натальи.

 

Вместо предисловия сразу хочу отметить, что, скорее всего, статья будет интересна в первую очередь ребятам, мало знакомым с консолью и docker. Возможно, есть путь проще и быстрее, но я в первую очередь хочу помочь интересующимся коллегам не наступить на протестированные мной грабли и не потратить кучу времени на поиски.

Noveo Selenoid tests on Windows

Когда я попыталась самостоятельно запустить свои Java-тесты в Docker-контейнере, я столкнулась с основной проблемой: нужно достаточно хорошо разбираться в командах Linux.

 

После прочтения кучи гайдов легче не становилось: вроде бы и команды приводят простые и понятные, да еще и с пояснениями, но мне как стороннику нормального UI (киньте в меня тапками, но и гитом я пользуюсь не в консоли) никак не удавалось сдвинуться с мертвой точки. Контейнер ставится, dockerfile сформирован, а дальше-то что делать? Задача программиста — сделать жизнь бизнеса и его участников проще и понятнее, но почему же, как говорится, сапожник без сапог?!

 

После безуспешных попыток я наткнулась на фреймворк Selenoid (хотя и раньше встречала его в QA-шных блогах). Все блоги пестрили посвященными ему заголовками: запускаем тесты в docker-контейнерах за ДВЕ команды. Кроме того, основная задача фреймворка в том, чтобы быстро и без потребления лишних ресурсов запускать тесты параллельно в разных браузерах. Хм, почему бы и не попробовать?

 

И тут снова та же проблема: указанные две команды Windows-консоль в упор не понимает. И статьи «Selenoid за 5 минут» твердят одно и тоже, не упоминая, что команды ну никак не для системы Microsoft :(

Selenoid tests on Windows

В общем и целом после полутора часов поисков я таки нарыла статью действительно для чайников и для человеческой ОС!!!

 

Начнем:

 

  1. Ставим докер https://www.docker.com/products/docker-desktop, запускаем.
  2. Качаем Configuration manager — https://github.com/aerokube/cm/releases/tag/1.7.2 (скачаный файл для простоты переименовываем в cm.exe или как вам больше нравится).
  3. Открываем консоль (все-таки без нее пока никак) и выполняем в директории с нашим файлом команду cm.exe selenoid start --vnc.
    В результате выполнения команды ./cm.exe selenoid start--vnc произойдёт загрузка образов с VNC-сервером, то есть образов, в которых доступна возможность видеть экран браузера в реальном времени. Также в процессе выполнения этой команды будет скачана свежая версия Selenoid вместе с контейнерами, исполняемые файлы веб-драйверов, будут созданы файлы конфигурации и последним этапом будет сразу же запущен сам Selenoid.
  4. Далее выполняем cm.exe selenoid-ui start.
    Командой cm.exe selenoid-ui start мы скачиваем и запускаем Selenoid UI – графическую оболочку, через которую мы можем посмотреть ход выполнения наших тестов в реальном времени, видеозаписи выполнения сценариев и примеры конфигурационных файлов, собрать какую-то статистику и т.д. Фуух, хоть какой-то интерфейс :)

 

В браузере набираем http://localhost:8080/#/ и тадам, что-то есть) Хотя судя по сообщению, все не так радужно и двумя командами все-таки не обойтись…

Selenoid tests on Windows Noveo

Естественно, судя по скрину, как обычно возникают проблемы. После некоторых поисков (похоже, проблема не очень стандартная) был найден следующий алгоритм действий (описываю все-все шаги для людей, не работающих с консолью):

  • docker ps — узнаем название запущенных контейнеров, шаг не обязательный;
  • docker stop aerokube/selenoid:latest aerokube/selenoid-ui:1.10.0 (это имена ваших контейнеров для Selenoid) — останавливаем контейнеры;
  • docker rm aerokube/selenoid:latest aerokube/selenoid-ui:1.10.0 — удаляем контейнеры;
  • cm.exe selenoid cleanup — чистим все созданные конфигурации;
  • Run in powershell > docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v ${HOME}:/root -e OVERRIDE_HOME=${HOME} aerokube/cm:latest-release selenoid start  — запускаем конфигурирование заново.

 

И снова запускаем (в дальнейшем этими командами также можно запускать контейнеры):

 

  • cm.exe selenoid start --vnc — сам селеноид,
  • cm.exe selenoid-ui start — его интерфейс на локалхосте.

 

 

Дорабатываем и наши тесты. Мои тесты на Java+Selenide. Чтобы запустить их в Selenoid, нужно доработать метод setup:

 

    @BeforeAll

    public static void setUp() {

       //Url удалённого веб-драйвера

       Configuration.remote = «http://localhost:4444/wd/hub»;

       //Определяем, какой браузер будем использовать

       Configuration.browser = «chrome»;

       //Размер окна браузера

       Configuration.browserSize = «1920×1080»;

       //Создаём объект класса DesiredCapabilities, используется как настройка вашей конфигурации с помощью пары ключ-значение

       DesiredCapabilities capabilities = new DesiredCapabilities();

       //Включить поддержку отображения экрана браузера во время выполнения теста

       capabilities.setCapability(«enableVNC», true);

       //Включение записи видео в процессе выполнения тестов

       capabilities.setCapability(«enableVideo», true);

       //Переопределяем Browser capabilities

       Configuration.browserCapabilities = capabilities;

    }

 

Наконец-то все заработало и тесты стали отрабатывать. Результат может выглядеть примерно вот так (тестов и ресурсов ПК у меня не очень много, но позволяет понять в масштабе):

Noveo Selenoid tests on WIndows

Итак, мы научились гонять наши тесты на локальной машине (c Windows) в docker. Теперь мы как тру автоматизаторы должны интегрировать их в CI проекта. Но об этом — в одной из следующих статей :)

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

НазадПредыдущий пост ВпередСледующий пост

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: