[Java, Тестирование веб-сервисов, Тестирование мобильных приложений] Совет инженерам по тестированию №1: Докерезируйте ваш Selenium Grid (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
03-Сен-2020 19:34

И снова здравствуйте. Перевели для вас полезную заметку в преддверии старта курса «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.yml
version: "3"
services:
  selenium-hub:
  image: selenium/hub:3.141.59-neon
  container_name: selenium-hub
  ports:
    - "4444:4444"
  chrome:
  image: selenium/node-chrome:3.141.59-neon
  volumes:
    - /dev/shm:/dev/shm
  depends_on:
    - selenium-hub
  environment:
    - HUB_HOST=selenium-hub
    - HUB_PORT=4444
  firefox:
  image: selenium/node-firefox:3.141.59-neon
  volumes:
    - /dev/shm:/dev/shm
  depends_on:
    - selenium-hub
  environment:
    - 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.java
protected 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
===========

===========
Автор оригинала: SIMON STRATTON
===========
Похожие новости: Теги для поиска: #_java, #_testirovanie_vebservisov (Тестирование веб-сервисов), #_testirovanie_mobilnyh_prilozhenij (Тестирование мобильных приложений), #_testing, #_java, #_automation, #_selenium, #_blog_kompanii_otus._onlajnobrazovanie (
Блог компании OTUS. Онлайн-образование
)
, #_java, #_testirovanie_vebservisov (
Тестирование веб-сервисов
)
, #_testirovanie_mobilnyh_prilozhenij (
Тестирование мобильных приложений
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 22-Ноя 19:33
Часовой пояс: UTC + 5