Упрощаем тестирование с Docker-образами Selenium Grid

13 Dec, 2025

Представьте, что вам нужно запустить сотни автотестов на разных версиях браузеров. Вручную настраивать инфраструктуру — долго и сложно. Решение есть — официальные 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. Для активации нужно:

  1. Запустить контейнер с браузером
  2. Запустить отдельный контейнер для записи
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
  • Разработчикам для локального тестирования

Попробуйте сами — и вы оцените, насколько это упрощает жизнь!

Ссылки: