Skip to content
 
 

Repository files navigation

Selenoid UI (qa-guru fork)

Selenoid UI

Selenoid UI stats

Selenoid UI 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-ui in awesome
Awesome UI test details
selenoid-tests Orchestrator + merged Allure

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

Prod UI: selenoid.qa.guruSelenoid 3 (main / v3-dev, React 19). Pin-ветки 2.x — заморожены (maintenance-only в git, без публичного стенда).

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

На mainSTACK-PIN.md описывает живой v3 toolchain; на pin-ветках — v2.x pin. UI freeze для 2.x: только maintenance-фиксы; visual refresh → Selenoid 3 (rule selenoid-2-maintenance-ui).

Web-интерфейс для qa-guru/selenoid — форк aerokube/selenoid-ui с поддержкой Playwright-сессий на странице New Session.

Build Status Coverage Release Docker Pulls

GitHub qa-guru/selenoid-ui
Docker Hub qaguru/selenoid-ui
Текущий релиз v3.0.26docs/RELEASE_v3.0.26.md · qaguru/selenoid-ui:v3.0.26

Роль в экосистеме

UI не заменяет hub — он подключается к уже запущенному Selenoid и даёт:

  • Statistics (#/statistics) — статус квот и обзор hub;
  • Sessions (#/sessions) — живые сессии сверху и архив завершённых с артефактами (видео + логи + HAR, удаление сессии целиком). Заменяет прежнюю вкладку Videos;
  • New Session (#/new-session) — создание сессии и сниппеты для WebDriver / Playwright (бывшая Capabilities);
  • VNC-просмотр браузера и логи сессии;
  • прокси WebSocket /playwright/ → hub (нужно для Create Session из браузера).
Браузер пользователя  ──►  selenoid-ui :8080  ──►  selenoid hub :4444  ──►  browser containers

Экосистема 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/*

Отличия от upstream

  • В New Session отображаются Playwright-браузеры (playwright-chromium, playwright-firefox, …) наряду с WebDriver (chrome, firefox).
  • Create Session для Playwright открывает WebSocket через прокси UI (/playwright/…), а не POST /wd/hub/session.
  • Нужен тот же browsers.json, что у hub — иначе Playwright-версии в UI не совпадут с hub.
  • SSE resilience: immediate GET /status, fallback poll каждые 4s, reconnect с backoff, индикатор STALE вместо мгновенного сброса в UNKNOWN.

Upstream docs: aerokube/selenoid-ui · aerokube.com/selenoid-ui. AsciiDoc docs/*.adocdeprecated (оставлены как upstream history); канон — этот README + docs/RELEASE_*.md.

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

Сначала поднимите hub (qa-guru/selenoid). Затем соберите и запустите UI:

yarn --cwd ui install && yarn --cwd ui build
go generate .
go build -o selenoid-ui .

./selenoid-ui \
  -listen :8080 \
  -selenoid-uri http://127.0.0.1:4444 \
  -browsers-conf /path/to/browsers.json

Monorepo dev: projects/selenoid-home/dev/scripts/build-selenoid-ui.sh.

Frontend stack (ui/)

Current main / v3-dev toolchain — STACK-PIN.md + ui/package.json (React 19 / react-router 7). Prod v2.3.0 / React 18 — только pin-ветка selenoid2-…-react18 (её STACK-PIN.md).

Tool Version
React 19.x (^19.2.7)
Router react-router-dom 7 (HashRouter / Routes / useNavigate)
Bundler Vite 6
Test Vitest 3 + React Testing Library (jsdom)
Node (CI) 24
yarn --cwd ui install
yarn --cwd ui test    # 22 tests (unit + component)
yarn --cwd ui build

Guest hub auth (New Session): не хранится в git. CI подставляет при yarn build:

  • HUB_AUTH_USER / HUB_AUTH_PASSVITE_HUB_AUTH_* — WebDriver Basic Auth (duo authUser / authPass);
  • HUB_ACCESS_KEYVITE_HUB_ACCESS_KEY — Playwright ?accessKey= (одно поле).

Если AUTH_* пусты, WD duo берёт user:pass из ACCESS_KEY (prod часто печёт только этот secret). Playwright никогда не собирается из AUTH_*.

Локально — ui/.env.exampleui/.env.local, либо пусто (поля auth вручную).

v1 (CRA) — git tag v2.2.x и ранее.

-browsers-conf — тот же config/browsers.json, что у hub (в monorepo: projects/selenoid-home/dev/browsers.json).

Nav: Statistics · Sessions · New Session
(#/ и #/capabilities редиректят на #/statistics и #/new-session.)

  • WebDriver (chrome, firefox): Create Session → POST /wd/hub/session
  • Playwright: сниппеты WebSocket; Create Session → прокси ws://…/playwright/{browser}/{version} и переход в сессию по SSE /events

Прокси Playwright в UI: путь /playwright/ → Selenoid ws://host:4444/playwright/….

Docker (qa-guru)

browsers.json должен быть смонтирован в UI по пути из --browsers-conf (тот же файл, что у hub). Корневой browsers.json — qaguru/dev-канон.

docker run -d --name selenoid-ui \
  -p 8080:8080 \
  -v "$PWD:/etc/selenoid:ro" \
  qaguru/selenoid-ui:v2.2.1 \
  --selenoid-uri http://host.docker.internal:4444 \
  --browsers-conf /etc/selenoid/browsers.json

Compose: docker-compose.yml монтирует $PWD в /etc/selenoid/ и для hub, и для UI.

Ручная проверка Playwright

  1. Соберите hub (go build -o selenoid . в qa-guru/selenoid) и поднимите с config/browsers.json
  2. Соберите UI (команды выше)
  3. Запустите UI с -browsers-conf, указывающим на тот же browsers.json
  4. New Session → playwright-chromium: 1.61.1Create Session → должен открыться экран сессии с VNC
  5. Для chrome/firefox — создание сессии через WebDriver без изменений

Проверка только Go-backend (без React):

go build .

Для полной сборки с UI нужны предварительные yarn --cwd ui build и go generate.

About

Graphical user interface for Selenoid project

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages