Skip to content

qa-guru/selenoid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,198 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selenoid (qa-guru fork)

Selenoid Hub

Selenoid Hub stats

Selenoid Hub metrics

Allure 3 dashboard — pyramid, stability, success distribution > Dashboard PNG updates after each orchestrator run on `main` (Playwright screenshot of Allure 3 dashboard).
Link Description
Dashboard Full pyramid — filter epic selenoid in awesome
Awesome Hub test details
selenoid-tests Orchestrator + merged Allure

Стабильные билды

Prod hub/cm: релизы с mainv3.0.0+ (selenoid.qa.guru). UI — отдельная v3.x линия на selenoid-ui main.

Pin-ветки 2.x (selenoid2-…-react16 / react18) — заморожены, только rollback reference; не использовать для новых релизов.

Ветка Semver Назначение
main v3.0.0+ Активная prod-линия hub
selenoid2-1.55-…-react18 v2.3.0 frozen maintenance pin
selenoid2-1.45-…-react16 v2.2.1 frozen rollback reference

Основной репозиторий экосистемы. Форк aerokube/selenoid с нативной поддержкой Playwright.

Build Status Coverage Go Report Card Release Docker Pulls StackOverflow Tag

GitHub qa-guru/selenoid
Docker Hub qaguru/selenoid
Текущий релиз v3.0.0docs/RELEASE_v3.0.0.md · qaguru/selenoid:v3.0.0 · Selenoid 3 hub
Selenoid 3 selenoid.qa.guru — hub v3.0.0 + UI v3.0.x

Что это

Selenoid — лёгкий Selenium hub на Go, который поднимает браузеры в Docker-контейнерах. В этом форке добавлен native Playwright: клиент подключается по WebSocket, hub стартует Playwright-образ и проксирует соединение.

Тест (Selenium)   ──►  /wd/hub         ──►  qaguru/webdriver-chrome (Chrome)
Тест (Playwright) ──►  /playwright/... ──►  qaguru/playwright-* (browser-image)

Экосистема

flowchart TB
  cm["cm<br/>установка на сервер"]
  hub["selenoid hub"]
  ui["selenoid-ui"]
  bi["browser-image<br/>browser containers"]
  wd["qaguru/webdriver-chrome<br/>Selenium Chrome"]

  cm -->|"бинарники + browsers.json"| hub
  ui <--> hub
  hub --> bi
  hub --> wd
Loading
  • cm — one-command install на сервере с Docker
  • selenoid (hub) — Selenium /wd/hub + Playwright WebSocket
  • selenoid-ui — web UI сессий и capabilities
  • browser-image — Playwright и WebDriver browser nodes

WebDriver Chrome — qaguru/webdriver-chrome (browser-image/webdriver/). Playwright-образы — qaguru/playwright-*. Hub — qaguru/selenoid.

Twilio (twilio/selenoid) — legacy cold WebDriver-образы, не Playwright. Текущий стек: Microsoft MCR + qaguru wrapper для Playwright; Chrome for Testing + qaguru wrapper для WebDriver. Таблица: docs/browser-versions.md.

Экосистема qa-guru Selenoid

Ресурс Ссылка Роль
selenoid (этот) github.com/qa-guru/selenoid Hub
selenoid-ui github.com/qa-guru/selenoid-ui Web UI
cm github.com/qa-guru/cm Установщик
browser-image github.com/qa-guru/browser-image Docker browser nodes
selenoid-tests github.com/qa-guru/selenoid-tests E2e/integration ethalon
Docker Hub hub.docker.com/u/qaguru Образы qaguru/*

Native Playwright

WebSocket endpoint (схема URL совместима с Moon):

ws://localhost:4444/playwright/playwright-chromium/1.61.1?enableVNC=true&enableVideo=true
ws://127.0.0.1:4444/playwright/playwright-chromium/1.61.1?enableVNC=true&enableVideo=true

Опционально: -playwright-access-key=… → обязательный query ?accessKey=. Несколько ключей задаются через запятую (на демо: user1:1234,qa_engineer:aAb_-4gs53FD). Local без flag — без ключа.

Документация и smoke-тест:

Требования к окружению

Компонент Версия Зачем
Go 1.26.x Сборка hub (.go-version1.26.5, go.mod toolchain go1.26.5)
Docker Engine 29.x (рекомендуется 29.6+) Совместим с DOCKER_API_VERSION=1.55 (moby client MaxAPIVersion)
Docker API 1.55 Версия API, с которой hub ходит к daemon (DOCKER_API_VERSION)
Docker SDK moby github.com/moby/moby/client + github.com/moby/moby/api (не github.com/docker/docker)

Проверка:

./scripts/check-toolchain.sh
docker version | grep -E 'Version:|API'
# Engine: 29.x, API version: 1.55
go version   # go1.26.x

Hub и cm фиксируют DOCKER_API_VERSION=1.55 (скрипт ./scripts/start-selenoid.sh, образ, CI). На Linux/CI: Engine 29.x (./scripts/check-toolchain.sh). Hub без env пина может снизить API через negotiation (main.go).

Сборка без локального Go использует образ golang:1.26 (см. ./scripts/build-selenoid.sh).

Сборка и запуск

./scripts/build-selenoid.sh
docker pull qaguru/webdriver-chrome:149 qaguru/webdriver-chrome:149-min qaguru/video-recorder:latest
docker pull qaguru/playwright-chromium:1.61.1   # или сборка в browser-image
./scripts/start-selenoid.sh

Или вручную:

go build -o selenoid .
DOCKER_API_VERSION=1.55 ./selenoid -conf config/browsers.json -limit 5

SSOT: ../dev/browsers.json (полный каталог).
Sync: ../dev/scripts/sync-cm-browsers.shconfig/browsers.json, CM embed, CI fixture, UI.

Smoke-тест Playwright: examples/playwright (npm install && npm test).

Текущий релиз hub: v2.3.0docs/RELEASE_v2.3.0.md (moby API 1.55, React 17/CRA5 UI).
Предыдущий: docs/RELEASE_v2.2.1.md. Docker: qaguru/selenoid:v2.3.0.

browsers.json

Два стека — WebDriver (Selenium) и Playwright (WebSocket). Каталог = SSOT ../dev/browsers.json. Полная таблица — docs/browser-versions.md.

Браузер в hub Default Версии (sample) Docker-образ Протокол
chrome 149.0 149/148 (+-min) qaguru/webdriver-chrome:<tag> WebDriver, path: /
firefox 151.0 151/150 (+-min) qaguru/webdriver-firefox:<tag> WebDriver
msedge 145.0 145/144 (+-min) qaguru/webdriver-msedge:<tag> WebDriver
playwright-chromium 1.61.1 1.61.1, 1.61.1-min qaguru/playwright-chromium:<версия> Playwright
playwright-{firefox,webkit,chrome,msedge} 1.61.1 1.61.1 qaguru/playwright-*:<версия> Playwright

Playwright-образы: порт 3000, protocol: "playwright", shmSize: 2GB. Версия npm-клиента @playwright/test должна совпадать с playwrightVersion в конфиге.

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

# WebDriver Chrome (qaguru) — default 149.0; 148.* optional regression
docker pull qaguru/webdriver-chrome:149 qaguru/webdriver-chrome:149-min

# Playwright — pull или сборка в browser-image
docker pull qaguru/playwright-chromium:1.61.1
# ./playwright/scripts/build.sh all 1.61.1   (в репозитории browser-image)

# Видеозапись сессий
docker pull qaguru/video-recorder:latest

Endpoints (локально, SSOT)

# WebDriver
http://127.0.0.1:4444/wd/hub

# Playwright
ws://127.0.0.1:4444/playwright/playwright-chromium/1.61.1?enableVNC=true&enableVideo=true
ws://127.0.0.1:4444/playwright/playwright-chromium/1.61.1-min

Записи с enableVideo=true сохраняются в каталог video/ (или http://127.0.0.1:4444/video/).

Переменные окружения (process hub)

Переменная Описание
DOCKER_API_VERSION API Docker для hub (канон 1.55)
DOCKER_HOST Адрес Docker daemon (стандартный Docker client)
GGR_HOST Хост GGR (если hub за GGR)
OVERRIDE_VIDEO_OUTPUT_DIR Переопределение каталога video

Клиентские PLAYWRIGHT_WS_ENDPOINT / PW_TEST_CONNECT_WS_ENDPOINT — не env процесса hub; см. docs/playwright.md и examples/playwright.

Upstream (Aerokube)

Форк aerokube/selenoid (upstream UNMAINTAINED). Оригинальная документация: aerokube.com/selenoid/latest и AsciiDoc в docs/*.adoc (upstream-only, не дублируют qa-guru quick start).

About

Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages