[Java, Тестирование веб-сервисов, Тестирование мобильных приложений] Совет инженерам по тестированию №1: Докерезируйте ваш Selenium Grid (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
И снова здравствуйте. Перевели для вас полезную заметку в преддверии старта курса «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
===========Похожие новости:
- [Тестирование IT-систем, Тестирование веб-сервисов, Тестирование игр] Автоматизация тестирования. Да или нет? (перевод)
- [Java, Тестирование IT-систем] Fast-Unit или декларативный подход к юнит-тестам
- [Unity, Разработка игр] Улучшаем работу со сценами с помощью ScriptableObject (перевод)
- [Разработка веб-сайтов, JavaScript, Программирование] Рецепты по приготовлению оффлайн-приложений (перевод)
- [CSS, JavaScript] Оптимизация производительности фронтенда. Часть 2. Event loop, layout, paint, composite
- [Тестирование веб-сервисов] Как протестировать международную платежную систему без боли и нервов
- [Dart, Тестирование мобильных приложений, Flutter] Тестирование Flutter-приложений: инструменты, преимущества, проблемы
- [Open source, Java, Облачные сервисы, Openshift] Разработка Java-приложений для Kubernetes с использованием Eclipse JKube
- [JavaScript, ReactJS, Карьера в IT-индустрии, Программирование] Вопросы, которые мне задавали на фронтенд-собеседованиях (перевод)
- [Java, NoSQL] Как Spring Data работает с Redis
Теги для поиска: #_java, #_testirovanie_vebservisov (Тестирование веб-сервисов), #_testirovanie_mobilnyh_prilozhenij (Тестирование мобильных приложений), #_testing, #_java, #_automation, #_selenium, #_blog_kompanii_otus._onlajnobrazovanie (
Блог компании OTUS. Онлайн-образование
), #_java, #_testirovanie_vebservisov (
Тестирование веб-сервисов
), #_testirovanie_mobilnyh_prilozhenij (
Тестирование мобильных приложений
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:18
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
И снова здравствуйте. Перевели для вас полезную заметку в преддверии старта курса «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:
#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 ===========Похожие новости:
Блог компании OTUS. Онлайн-образование ), #_java, #_testirovanie_vebservisov ( Тестирование веб-сервисов ), #_testirovanie_mobilnyh_prilozhenij ( Тестирование мобильных приложений ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:18
Часовой пояс: UTC + 5