Русский
Русский
English
Статистика
Реклама

Перевод Совет инженерам по тестированию 1 Докеризируйте ваш Selenium Grid

И снова здравствуйте. Перевели для вас полезную заметку в преддверии старта курса Java QA Engineer.





Каждый год инженеры по автоматизации тестирования со всего мира исследуют новейшие инструменты и методы, чтобы сделать свою среду автоматизации тестирования более стабильной, быстрой и простой в использовании и обслуживании. Это жизненно важно для обеспечения постоянного широкомасштабного внедрения их фреймворков в их компании. Так или иначе, раздутые устаревшие фреймворки быстро выходят из моды.

Selenium Grid, как известно, сложен в настройке, нестабилен и сложен в развертывании и/или управлении версиями на CI конвейере. Более простой, стабильный и удобный способ использовать предварительно созданные образы Selenium Docker.

Примечание: Единственным недостатком этого метода является то, что не поддерживается IE (Internet Explorer), так как операционную систему Windows на данный момент невозможно поместить в контейнер.


Подготовка к работе


Чтобы приступить к работе, вам необходимо сначала установить Docker и Docker Compose на вашем компьютере. Если вы используете Windows 10 или Mac, они оба будут установлены с помощью Docker Desktop.

Запуск вашего Grid


Официальный репозиторий Selenium на Docker Hub содержит предварительно созданные образы Docker для ваших нодов (узлов) Selenium Hub, Firefox и Chrome.

Самый простой способ использовать их в локальном Selenium Grid создать файл Docker Compose в корневом каталоге вашего проекта. Назовите файл просто docker-compose.yml.

Я включил пример ниже, который создает следующий Grid:
  • Один Selenium Hub
  • Один нод Chrome
  • Один нод Firefox


#docker-compose.ymlversion: "3"services:  selenium-hub:image: selenium/hub:3.141.59-neoncontainer_name: selenium-hubports:  - "4444:4444"  chrome:image: selenium/node-chrome:3.141.59-neonvolumes:  - /dev/shm:/dev/shmdepends_on:  - selenium-hubenvironment:  - HUB_HOST=selenium-hub  - HUB_PORT=4444  firefox:image: selenium/node-firefox:3.141.59-neonvolumes:  - /dev/shm:/dev/shmdepends_on:  - selenium-hubenvironment:  - HUB_HOST=selenium-hub  - HUB_PORT=4444


Файл Docker Compose описывает настройку вашего Grid. Дополнительные сведения о создании файлов Docker Compose см. в официальной документации.

Чтобы запустить свой Grid, просто используйте любой терминал (PowerShell или cmd в Windows), в котором выполните следующую команду из корневого каталога вашего проекта:

docker-compose up


Подключение к Grid


Вы можете подключиться к своему Selenium Grid точно в так же, как обычно, поскольку Hub прослушивает порт 4444 вашей локальной машины. Вот пример, в котором мы настроили наш Driver для использования нашего Chrome Node.

// Driver.javaprotected static RemoteWebDriver browser;DesiredCapabilities cap = new DesiredCapabilities();ChromeOptions chromeOptions = new ChromeOptions();            cap.setCapability(ChromeOptions.CAPABILITY, chromeOptions);            cap.setBrowserName("chrome");            driver = new RemoteWebDriver(cap);


Затем вы можете использовать библиотеку TestNG, чтобы запускать тесты на нескольких нодах параллельно, как обычно.

Стоит отметить, что на каждом ноде можно запустить несколько браузеров. Однако это не рекомендуется, и использование одного браузера на каждом ноде считается лучшей практикой для достижения оптимальной производительности.

Дополнительные советы и хитрости


Если вы хотите увидеть, что происходит в браузере, в целях отладки своих тестов, то стоит иметь debug версию вашего docker-compose.yml файла, который загружает debug браузерные ноды. Они содержат сервер VNC, поэтому вы можете наблюдать за браузером во время выполнения теста.

Также возможно запускать headlessly-браузеры для увеличения скорости (обычный способ), и Selenium также предоставляет base версии образов, так что вы можете создавать свои собственные образы, если вам нужно установить дополнительное программное обеспечение.

Чтобы создать стабильную версию Grid для вашего CI конвейера, также можно развернуть ваш Grid на Kubernetes или Swarm. Это гарантирует быстрое восстановление или замену докеров в случае их выхода из строя.



Читать ещё:



Источник: habr.com
К списку статей
Опубликовано: 03.09.2020 18:19:12
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании otus. онлайн-образование

Java

Тестирование веб-сервисов

Тестирование мобильных приложений

Testing

Automation

Selenium

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru