V tomto článku
Oznámení o vydání
Sedm aktuálních prohlížečů v Dockeru, jeden kontejner na relaci, nahrávky se zvukem. Zjistěte, jak WebSummoner navazuje na Selenoid, archivovaný od prosince 2024, a proč běží v jádru naší vlastní hostingové infrastruktury.
Pokud váš tým spouští testy v Selenium, je velká šance, že znáte Selenoid: malý program v Go, který pro každou testovací relaci spustí v kontejneru Docker nový prohlížeč a poté ho zahodí. Rychlý, lehký a po léta nejsnazší způsob, jak provozovat grid prohlížečů na vlastním hardwaru. 17. prosince 2024 jeho autoři repozitář archivovali. Žádné oznámení, žádný rozlučkový příspěvek: jen šedý pruh, kterým GitHub označuje projekty jen pro čtení, a bylo to.
Srpen 2016 První commit Selenoidu v Aerokube
- prosince 2024 Repozitář archivován, pouze pro čtení
Září 2026 WebSummoner 1.0.0: sedm aktuálních prohlížečů, migrace na jeden řádek
Toho rána se nic nerozbilo, a právě v tom je problém. Archivovaný testovací nástroj zastarává podle harmonogramu, který nemáte pod kontrolou: nové verze prohlížečů nepřicházejí, ovladače se rozcházejí a jednoho dne začne sada testů, která byla léta zelená, selhávat z důvodů, které s vaší aplikací nemají nic společného.
Open source archivací repozitáře nekončí
Archivace repozitáře ukončuje jeho údržbu, ne jeho život. Selenoid je vydán pod licencí Apache 2.0, která každému uživateli dává trvalé právo ho upravovat a dále šířit: když autoři projektu odejdou jinam, kód zůstává k dispozici a nový správce v něm může pokračovat. Aerokube Selenoid vytvořil a osm let ho udržoval; jeho archivace byla jejich rozhodnutím a zásluha za vše, co Selenoid udělal dobře, zůstává jejich. WebSummoner je tímto pokračováním. Vychází z posledního commitu Selenoidu, zachovává návrh, díky kterému byl dobrý, a nese vlastní název, organizaci, image a doménu. V RIADVICE jsme Selenoid už provozovali v produkci a pokračovat v něm bylo rozumné rozhodnutí, pro nás i pro všechny ostatní, kdo na něm závisejí.
WebSummoner 1.0.0 je venku: rychlý Selenium hub, který přivolá flotilu prohlížečů do kontejnerů Docker jako dočasná prostředí vázaná na relaci.
Proč jsme Selenoid forkovali, místo abychom ho nahradili
Forkovali jsme ho ze dvou důvodů.
-
Naše vlastní infrastruktura. WebSummoner je součástí páteře hostingové infrastruktury RIADVICE. Produkční závislost, která už nedostává aktualizace prohlížečů, opravy ovladačů ani bezpečnostní záplaty, jsme nemohli nechat archivovanou, a přechod na něco těžšího by stál víc než jeho pečlivá údržba.
-
Komunita. Týmy po celém světě postavily na Selenoidu roky práce na testovacích sadách a zasloužily si udržované pokračování, ne pomalý úpadek. Selenoid udělal ty důležité věci správně: jediná binárka v Go o velikosti asi 10 MB, žádný běhový modul Javy, žádná databáze, prohlížeč, který nastartuje zhruba za sekundu, a jeden kontejner na relaci, takže mezi testy nic neprosakuje.
To vše jsme zachovali a zbytek aktualizovali: prohlížeče, ovladače, základní image i toolchain, vše zamrzlé od roku 2024. Selenoid je software, o kterém lze říct, že je hotový: nepotřebuje nejnovější funkce, potřebuje aktuální prohlížeče, odpovídající ovladače a soustavné opravy, a to je práce, ke které jsme se zavázali. Kompatibilita byla prvním rozhodnutím, ne dodatečným nápadem. Vše, co klient Selenoidu posílá, je nadále přijímáno, a to natrvalo.
Co je nového ve verzi 1.0.0
Sedm prohlížečů, všechny aktuální
| Prohlížeč | Verze |
|---|---|
| Chrome | 152 |
| Firefox | 155 |
| Edge | 152 |
| Opera zpět | 135 |
| Brave novinka | 1.94 |
| Yandex | 26.6 |
| Safari (WebKitGTK) novinka | 2.52.6 |
Každý image prochází stejnou sadou testů kontejnerů, spouštěnou izolovaně proti publikovaným image. Dva případy, které samotné ovladače nezvládají, jsou zdokumentované jako přeskočené, ne skryté. Tři z nich jsou samy o sobě novinkou. Brave a Safari jsou publikovány poprvé: Selenoid image Brave nikdy nevydal a jeho zdrojové soubory pro Safari jako image nikdy nevyšly. Opera se vrací z mrtvých: její poslední image pro Selenoid pochází z dubna 2024 a se Selenium 4 byla nepoužitelná od chvíle, kdy projekt podporu Opery ukončil.
Brave se přidává do řady
Brave je publikován poprvé: Selenoid ho nikdy nevydal a nyní stojí vedle ostatních šesti jako plnohodnotný image. Brave čísluje svá vydání po svém, proto nástroj pro sestavení přečte verzi Chromia obsaženou v každém vydání a automaticky k ní přiřadí odpovídající ovladač. Pokud vaši uživatelé prohlížejí web v Brave, můžete v něm testovat přesně tak jako v Chrome: stejné capabilities, stejná živá obrazovka, stejné nahrávky a stejná sada testů, splněná stejným způsobem.
Opera opět funguje
Selenium ukončilo podporu Opery ve verzi 4.3.0 a obvyklé obejití, které všichni opakují, tedy ovládání Opery pomocí chromedriveru z Chrome for Testing, sice relace spustí bez potíží, ale pak shodí renderer, kdykoli stránka otevře okno. Řešením bylo pořádně si přečíst chybovou hlášku: kontrola verze v OperaDriveru je varování, ne odmítnutí. Vlastní ovladač Opery ji ovládá správně a hub si od něj za vás vyžádá moderní protokol.
Safari je plnohodnotným cílem
Safari je rovněž publikováno poprvé. Image používá WebKitGTK, tedy stejný engine, jaký používá Safari, sestavený ze zdrojového kódu: Selenoid sice obsahoval soubory pro sestavení, ale image nikdy nevydal, takže tohle je první, který si můžete stáhnout. Dvě věci, které s ním nikdy nefungovaly, nahrávání souborů a capability proxy, nyní obstarává přímo hub, takže oprava platí pro jakýkoli image, starý i nový. Každá ze dvou zbývajících zvláštností vyžaduje ve vašich testech jeden řádek a dokumentace uvádí jaký.
Nahrávky se zvukem ve všech prohlížečích
Nahrávky relací nyní spolehlivě zachycují zvuk ve všech sedmi prohlížečích, takže selhávající test médií nebo WebRTC už není němé video. Pokud zvuk nechcete, vypnete ho jednou capability.
Postaveno pro provoz
Endpoint Prometheus /metrics, sondy stavu, které odpovídají na požadavky HEAD, řádná odpověď 429 při plné frontě, nahrávání souborů funkční v každém image, podepsané image vydání se soupisem softwarových komponent (SBOM) a bezpečnostní politika, která jasně říká, co znamená socket Dockeru.
Přepracované rozhraní
WebSummoner UI, živý pohled na váš grid s obrazovkou prohlížeče, logy a frontou, bylo přepracováno od základu: promyšlený tmavý motiv, oficiální loga prohlížečů, živé statistiky relací a fronty a poctivé hlášení stavu připojení. Stávající příkazové řádky a soubory Compose nevyžadují žádnou změnu.
Moderní toolchain
Go 1.27, Java 25 pro sadu testů, React 19 pro rozhraní, Ubuntu 26.04 pro image prohlížečů, aktualizace závislostí a kontroly zranitelností v CI a prohledávatelná dokumentace. K sestavení kterékoli části projektu stačí Docker a nic dalšího. Load balancer pro clustery s více huby i instalátor na jeden příkaz se posunuly vpřed spolu s hubem.
Pokud vybíráte dnes
Dokonalá náhrada za to, co dělal Selenoid, neexistuje, existují ale poctivé alternativy.
Selenium Grid Referenční implementace. Správná volba, pokud chcete jeho distribuovaný režim a nevadí vám nároky Javy.
Moon Volba pro ty, kdo provozují Kubernetes a akceptují komerční licenci nad čtyři paralelní relace.
WebSummoner Pro hostitele s Dockerem a virtuální stroje, kde chcete malý, rychlý hub, který má vše potřebné už v sobě.
Dokumentace obsahuje srovnání ověřené proti zdrojovému kódu se Selenoidem, Moonem, Selenium Grid, Selenide, Playwrightem a Puppeteerem, včetně toho, kdy zvolit raději je.
Migrace ze Selenoidu
Nasměrujte své klienty na nový hub. selenoid:options, hlavičky X-Selenoid-*, cesta /aerokube/..., cm selenoid start i přepínač rozhraní --selenoid-uri stále fungují a fungovat budou i nadále.
Jediná změna: uvnitř image Dockeru se konfigurace přesunula z /etc/selenoid do /etc/websummoner. Upravte toto připojení a máte hotovo.
K čemu se zavazujeme
- Kompatibilita, natrvalo. Názvy capabilities, hlavičky, cesty a příkazy Selenoidu jsou přijímány trvale, nejsou označeny jako zastaralé s odpočtem. Migraci, která stojí celý sprint, nikdo neudělá.
- Aktuální prohlížeče. Image sledují stabilní vydání jednotlivých výrobců, každý s odpovídajícím ovladačem, a žádný image nedostane tag, dokud neprojde sadou testů.
- Udržovaná bezpečnost. Závislosti se aktualizují každý týden, každé sestavení prochází kontrolou zranitelností a image hubu je podepsaný a dodává se se soupisem softwarových komponent.
- Produkce na prvním místě. WebSummoner sami provozujeme. Co vydáme, na tom sami závisíme.
- Dokumentace, která říká, co nefunguje. Kompletní poznámky, včetně omezení, najdete v oznámení.
WebSummoner si klade za cíl konkurovat největším gridům tam, kde vyhrává: rychlostí, jednoduchostí a náklady na provoz. Každá změna se měří tímto měřítkem.
K dispozici nyní
websummoner \
-p 4444:4444 \
-v $PWD/browsers.json:/etc/websummoner/browsers.json:ro \
-v /var/run/docker.sock:/var/run/docker.sock \
websummoner/websummoner:latestNasměrujte své testy na http://localhost:4444/wd/hub. Kompletní poznámky k vydání, průvodce migrací i diskuse jsou na jedno kliknutí:
📣 Oznámení verze 1.0.0 Kompletní poznámky k vydání a místo pro vaše otázky 📖 Dokumentace Průvodci, reference a průvodce migrací 💻 Zdrojový kód Apache-2.0, na GitHubu
Pokud jste provozovali Selenoid a něco se při migraci nechová, jak má, je to pro nás chyba, ne dotaz na podporu. Pokud jste nad Selenoidem něco udržovali, dejte nám vědět a postaráme se, aby to fungovalo i nadále.
Přivolejte flotilu prohlížečů do kontejnerů Docker.
Rychlý Selenium hub s dočasnými prostředími vázanými na relaci.
Potřebujete pomoc s provozem WebSummoner ve vaší organizaci?
WebSummoner vyvíjí a udržuje RIADVICE pod licencí Apache-2.0. Navazuje na Selenoid od Aerokube a Ivana Krutova a na původní rozhraní od Kirilla Merkusheva.





