Упрощаем тестирование с Docker-образами Selenium Grid
Представьте, что вам нужно запустить сотни автотестов на разных версиях браузеров. Вручную настраивать инфраструктуру — долго и сложно. Решение есть — официальные Docker-образы Selenium Grid от создателей Selenium.
Что внутри проекта?
SeleniumHQ/docker-selenium — это набор готовых Docker-образов для быстрого разворачивания Selenium Grid в контейнерах. Основные компоненты:
- Selenium Hub — центральный узел для управления тестами
- Node — контейнеры с браузерами (Chrome, Firefox, Edge)
- Standalone — всё в одном контейнере
- Dynamic Grid — автоматическое создание контейнеров под каждую сессию
Главные преимущества:
✅ Простота развертывания одной командой ✅ Поддержка последних версий браузеров ✅ Готовые решения для Kubernetes и Docker Compose ✅ Встроенная запись видео тестов
Быстрый старт
Запустить standalone Chrome можно одной командой:
docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:latest
После этого тесты можно направлять на http://localhost:4444. Для визуального контроля через браузер откройте http://localhost:7900 (пароль: secret).
Ключевые возможности
1. Гибкие конфигурации
Проект поддерживает несколько режимов работы:
- Standalone — браузер + Selenium Server в одном контейнере
- Hub + Nodes — классическая Grid-архитектура
- Dynamic Grid — автоматическое создание контейнеров под каждую сессию
Пример развертывания Grid с Hub и двумя узлами:
docker network create grid
docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub --shm-size="2g" selenium/node-chrome:latest
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub --shm-size="2g" selenium/node-firefox:latest
2. Запись видео тестов
Встроенная поддержка записи тестов через ffmpeg. Для активации нужно:
- Запустить контейнер с браузером
- Запустить отдельный контейнер для записи
docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-latest
Видео сохраняются в указанную директорию на хосте.
3. Поддержка Kubernetes
Проект включает Helm-чарты для развертывания в Kubernetes:
helm install selenium-grid charts/selenium-grid --namespace selenium
4. Динамическое создание контейнеров
Dynamic Grid автоматически создает контейнеры под каждую тестовую сессию. Конфигурация через TOML-файл:
[docker]
configs = [
"selenium/standalone-chrome:latest", '{"browserName": "chrome"}',
"selenium/standalone-firefox:latest", '{"browserName": "firefox"}'
]
url = "http://127.0.0.1:2375"
Практическое применение
Сценарии использования:
- CI/CD — интеграция с Jenkins, GitLab CI
- Параллельное тестирование — запуск тысяч тестов одновременно
- Кросс-браузерное тестирование — проверка в разных версиях браузеров
- Масштабирование — увеличение мощности тестовой инфраструктуры по требованию
Docker-образы Selenium Grid — это:
✔ Простота развертывания ✔ Гибкость конфигураций ✔ Масштабируемость ✔ Поддержка современных технологий
Проект особенно полезен:
- QA-инженерам для автоматизации тестирования
- DevOps для интеграции в CI/CD
- Разработчикам для локального тестирования
Попробуйте сами — и вы оцените, насколько это упрощает жизнь!
Ссылки: