- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

На Маке:

$ 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 бита [15] или 64 бита [16] и сохраните файл как cm. Если у вас установлен Powershell [17], то для скачивания введите команду:

> 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 [18], контейнеры с браузерами, исполняемые файлы веб-драйверов, создаст файлы конфигурации и запустит Selenoid. После успешного завершения команды просто запустите тесты через обычный URL:

http://localhost:4444/wd/hub

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

$ ./cm selenoid-ui start

Автор: aandryashin

Источник [19]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/260687

Ссылки в тексте:

[1] Aerokube: http://aerokube.com/

[2] Selenium: http://seleniumhq.org/

[3] Selenoid: http://github.com/aerokube/selenoid

[4] Docker: https://docker.com/

[5] раз: https://habrahabr.ru/post/327184/

[6] два: https://habrahabr.ru/post/329256/

[7] Selenoid UI: https://github.com/aerokube/selenoid-ui

[8] таблицах: http://aerokube.com/selenoid/latest/#_browser_image_information

[9] документации: http://aerokube.com/selenoid/latest/#_logging_configuration_file

[10] Angular webdriver-manager: https://www.npmjs.com/package/webdriver-manager

[11] Node.js: https://nodejs.org/

[12] Java: https://java.com/

[13] cm: http://github.com/aerokube/cm

[14] страницы релизов: https://github.com/aerokube/cm/releases

[15] 32 бита: https://github.com/aerokube/cm/releases/download/1.2.0/cm_windows_386

[16] 64 бита: https://github.com/aerokube/cm/releases/download/1.2.0/cm_windows_amd64

[17] Powershell: https://en.wikipedia.org/wiki/PowerShell

[18] Selenoid: https://github.com/aerokube/selenoid

[19] Источник: https://habrahabr.ru/post/333568/