Selenium: проще пареной репы…

в 6:42, , рубрики: Go, golang, open source, selenium, test automation, webdriver, Тестирование IT-систем

Как вы уже могли заметить мы в команде Aerokube продолжаем упрощать жизнь в инфраструктуре тестирования. Сейчас мы усиленно работаем над удобными инструментами для, браузерного тестирования на основе Selenium. Одним из инструментов, о котором я уже рассказывал раньше, является Selenoid. Selenoid — это легковесный сервер, запускающий изолированные браузеры в Docker контейнерах. В предыдущих статьях (раз, два) я описал два возможных сценария использования Selenoid — работа с Docker и использование исполняемых файлов веб-драйверов в операционных системах, где отсутствует поддержка Docker. Сегодня я расскажу о новых возможностях, которые могут помочь в отладке браузерных тестов.

Selenium: проще пареной репы… - 1

Живой экран браузера

Одной из полезных возможностей, предлагаемых коммерческими Selenium сервисами является возможность отображения экрана браузера во время исполнения тестов. Это сильно помогает в отладке, и всем, включая вашего начальника или менеджера, нравится смотреть мультики с исполняющимися в браузерах тестами. А теперь хорошая новость — недавно мы добавили такую возможность в Selenoid. Чтобы попробовать нужно:

  1. Передать дополнительную capability в тесты:
    enableVNC = true
  2. Запустить мордочку Selenoid UI и перейти на вкладку VNC.
  3. Запустить тесты и вы увидите каждую сессию в виде прямоугольника с именем браузера и установленным разрешением экрана.
  4. Нажмите мышкой на этот прямоугольник и вы увидите что происходит в браузере. Можно даже вмешиваться мышкой в тесты.

Как это работает? Все очень просто. В каждом контейнере при запуске также стартует VNC сервер, который подключается к экрану браузера. Selenoid UI подключается к порту VNC и показывает что происходит с браузером. Наши образы по-умолчанию (например, selenoid/firefox:53.0) не содержат VNC сервера, поскольку предназначены для использования в больших кластерах Selenium, где просмотр сессии нужен достаточно редко. Для каждого обычного образа, мы подготовили отдельные образ, содержащий VNC сервер — полный список можно найти в таблицах.

Логи сессии в реальном времени

Опытные пользователи Selenium иногда хотят видеть логи сессии во время выполнения тестов. Эта возможность тоже добавлена в Selenoid. Использовать эту функциональность еще проще — нужно запустить Selenoid UI и пойти на вкладку Logs. На ней вы будете видеть логи для всех запущенных сессий. Если вам нужно сохранять логи после завершения сессии — посмотрите как можно сконфигурировать логирование в разделе документации.

Автоматическая установка

Хотя Selenium — достаточно простой инструмент, его первоначальная настройка может быть сложной. Некоторые библиотеки, например, Angular webdriver-manager уже умеют автоматизировать основную часть работы, но они требуют ручной установки Node.js и Java. Но что если бы вы могли подготовить Selenium окружение одной командой? Мы написали небольшой инструмент, который делает всю работу за вас и не имеет внешних зависимостей. Он называется просто cm, что по-английски значит "менеджер конфигурации". Чтобы все заработало:

Selenium: проще пареной репы… - 2

1) Скачайте исполняемый файл cm со страницы релизов.

На Маке:

$ curl -Lo cm https://github.com/aerokube/cm/releases/download/1.2.0/cm_darwin_amd64
$ chmod +x ./cm

На Линуксе:

$ curl -Lo cm https://github.com/aerokube/cm/releases/download/1.2.0/cm_linux_amd64
$ chmod +x ./cm

На Windows — универсальной команды нет, нажмите на одну из ссылок в зависимости от версии Windows: 32 бита или 64 бита и сохраните файл как cm. Если у вас установлен Powershell, то для скачивания введите команду:

> curl -o cm.exe https://github.com/aerokube/cm/releases/download/1.2.0/cm_windows_amd64

2) Запустите одну команду:

$ ./cm selenoid start --vnc

На Windows это пишется как:

> .cm.exe selenoid start

Запуск этой команды скачает свежую версию Selenoid, контейнеры с браузерами, исполняемые файлы веб-драйверов, создаст файлы конфигурации и запустит Selenoid. После успешного завершения команды просто запустите тесты через обычный URL:

http://localhost:4444/wd/hub

Аналогично для того, чтобы запустить Selenoid UI без лишних усилий введите команду:

$ ./cm selenoid-ui start

Автор: aandryashin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js