Naar de inhoud
Alle artikelen

WebSummoner 1.0: Selenoid, weer tot leven gewekt

door Ghazi Triki · 8 min. leestijd

Release van WebSummoner 1.0
In dit artikel

Releaseaankondiging

Zeven actuele browsers in Docker, één container per sessie, opnamen met geluid. Ontdek hoe WebSummoner Selenoid voortzet, dat sinds december 2024 gearchiveerd is, en waarom het in de kern van onze eigen hostinginfrastructuur draait.

Als uw team Selenium-tests uitvoert, is de kans groot dat u Selenoid kent: het kleine Go-programma dat voor elke testsessie een nieuwe browser in een Docker-container start en die daarna weer weggooit. Snel, licht en jarenlang de eenvoudigste manier om een browsergrid op uw eigen hardware te draaien. Op 17 december 2024 hebben de auteurs de repository gearchiveerd. Geen aankondiging, geen afscheidsbericht: alleen de grijze banner die GitHub op een alleen-lezenproject plaatst, en daarmee was het klaar.

Augustus 2016 Eerste Selenoid-commit bij Aerokube

17 december 2024 Repository gearchiveerd, alleen-lezen

September 2026 WebSummoner 1.0.0: zeven actuele browsers, migratie in één regel

Die ochtend ging er niets kapot, en dat is precies het probleem. Een gearchiveerde testtool veroudert volgens een tijdschema waar u geen invloed op hebt: nieuwe browserversies komen er nooit, drivers raken uit de pas, en op een dag begint een testsuite die jarenlang groen was te falen om redenen die niets met uw applicatie te maken hebben.

Open source houdt niet op bij een repository

Het archiveren van een repository beëindigt het onderhoud, niet het leven ervan. Selenoid is uitgebracht onder de Apache 2.0-licentie, die iedereen die het gebruikt het blijvende recht geeft om het aan te passen en opnieuw te verspreiden: wanneer de auteurs van een project verdergaan, blijft de code beschikbaar en kan een nieuwe beheerder het voortzetten. Aerokube heeft Selenoid gebouwd en acht jaar lang gedragen; het archiveren was hun beslissing, en de eer voor wat Selenoid goed deed, blijft van hen. WebSummoner is die voortzetting. Het begint bij de laatste Selenoid-commit, behoudt het ontwerp dat het goed maakte, en heeft een eigen naam, organisatie, images en domein. Bij RIADVICE draaiden we Selenoid al in productie, en het voortzetten ervan was de verstandige beslissing, voor ons en voor iedereen die ervan afhankelijk is.

WebSummoner 1.0.0 is uit: een snelle Selenium-hub die een vloot browsers oproept in Docker-containers, als kortstondige omgevingen per sessie.

Waarom we Selenoid hebben geforkt in plaats van vervangen

We hebben het om twee redenen geforkt.

  1. Onze eigen infrastructuur WebSummoner maakt deel uit van de ruggengraat van de hostinginfrastructuur van RIADVICE. Een productieafhankelijkheid die geen browserupdates, driverfixes of beveiligingspatches meer krijgt, konden we niet gearchiveerd laten, en overstappen op iets zwaarders zou meer hebben gekost dan het goed onderhouden.

  2. De gemeenschap Teams over de hele wereld hebben jarenlang testsuites op Selenoid gebouwd, en zij verdienden een onderhouden voortzetting in plaats van langzaam verval. Selenoid deed de belangrijke dingen goed: één Go-binary van ongeveer 10 MB, geen Java-runtime, geen database, een browser die in ongeveer een seconde start, en één container per sessie zodat er niets tussen tests lekt.

Dat alles hebben we behouden, en de rest hebben we bijgewerkt: browsers, drivers, basisimages en toolchain, die sinds 2024 bevroren waren. Selenoid is wat u voltooide software zou kunnen noemen: het heeft niet de nieuwste functie nodig, maar actuele browsers, bijpassende drivers en gestage fixes, en dat is het werk waarvoor we hebben getekend. Compatibiliteit was de eerste beslissing, geen bijzaak. Alles wat een Selenoid-client verstuurt, wordt nog steeds geaccepteerd, en dat blijft zo.

Nieuw in 1.0.0

Zeven browsers, allemaal actueel

BrowserVersie
Chrome152
Firefox155
Edge152
Opera terug135
Brave nieuw1.94
Yandex26.6
Safari (WebKitGTK) nieuw2.52.6

Elke image doorloopt dezelfde containertestsuite, geïsoleerd uitgevoerd op de gepubliceerde images. De twee gevallen die de drivers zelf niet aankunnen, zijn gedocumenteerd als overgeslagen tests, niet verborgen. Drie hiervan zijn op zichzelf al nieuws. Brave en Safari worden voor het eerst gepubliceerd: Selenoid heeft nooit een Brave-image uitgebracht, en de Safari-bronbestanden zijn nooit als image verschenen. Opera is terug van weggeweest: de laatste Selenoid-image dateert van april 2024, en sinds het project de ondersteuning voor Opera schrapte, was die onbruikbaar met Selenium 4.

Brave sluit aan

Brave wordt voor het eerst gepubliceerd: Selenoid heeft het nooit uitgebracht, en nu staat het naast de zes andere als volwaardige image. Brave nummert zijn releases volgens een eigen schema, dus de buildtool leest de Chromium-versie die in elke release is ingebouwd en koppelt die automatisch aan de bijpassende driver. Surfen uw gebruikers met Brave, dan kunt u erop testen zoals u op Chrome test: dezelfde capabilities, hetzelfde live scherm, dezelfde opnamen, en dezelfde suite die op dezelfde manier slaagt.

Opera werkt weer

Selenium schrapte de ondersteuning voor Opera in 4.3.0, en de workaround die iedereen herhaalt, Opera aansturen met een chromedriver van Chrome for Testing, start sessies probleemloos maar laat de renderer crashen zodra een pagina een venster opent. De oplossing was de foutmelding goed lezen: de versiecontrole van OperaDriver is een waarschuwing, geen weigering. Opera's eigen driver stuurt de browser correct aan, en de hub vraagt namens u om het moderne protocol.

Safari is een volwaardig doelplatform

Ook Safari wordt voor het eerst gepubliceerd. De image is WebKitGTK, dezelfde engine die Safari gebruikt, gebouwd vanaf de broncode: Selenoid bevatte de buildbestanden maar bracht nooit een image uit, dus dit is de eerste die u kunt pullen. Twee dingen die er nooit mee werkten, bestanden uploaden en de proxy-capability, worden nu door de hub zelf afgehandeld, zodat de oplossing voor elke image geldt, oud of nieuw. De twee resterende eigenaardigheden vergen elk één regel in uw tests, en de documentatie vermeldt welke.

Opnamen met geluid, in elke browser

Sessieopnamen leggen nu betrouwbaar audio vast in alle zeven browsers, zodat een mislukte media- of WebRTC-test geen stille video meer oplevert. Wilt u geen geluid, dan schakelt één capability het uit.

Gebouwd voor beheer

Een Prometheus-endpoint /metrics, healthprobes die op HEAD-verzoeken antwoorden, een correcte 429 wanneer de wachtrij vol is, bestanden uploaden die op elke image werkt, ondertekende release-images met een software bill of materials, en een beveiligingsbeleid dat duidelijk zegt wat de Docker-socket betekent.

Een herbouwde UI

WebSummoner UI, de live weergave van uw grid met het browserscherm, de logs en de wachtrij, is volledig opnieuw opgebouwd: een doordacht donker thema, officiële browserlogo's, live statistieken over sessies en wachtrij, en eerlijke rapportage over de verbinding. Bestaande opdrachtregels en Compose-bestanden hoeven niet te worden aangepast.

Een moderne toolchain

Go 1.27, Java 25 voor de testsuite, React 19 voor de UI, Ubuntu 26.04 voor de browserimages, updates van afhankelijkheden en kwetsbaarheidscontroles in CI, en een doorzoekbare documentatiesite. Om welk deel van het project dan ook te bouwen, hebt u alleen Docker nodig. De load balancer voor clusters met meerdere hubs en het installatieprogramma met één commando zijn met de hub meegegroeid.

Als u vandaag moet kiezen

Er bestaat geen perfecte vervanging voor wat Selenoid deed, maar er zijn eerlijke alternatieven.

Selenium Grid De referentie-implementatie. De juiste keuze als u de gedistribueerde modus wilt en de Java-voetafdruk voor lief neemt.

Moon De keuze als u op Kubernetes draait en een commerciële licentie accepteert boven vier parallelle sessies.

WebSummoner Voor Docker-hosts en virtuele machines, wanneer u een kleine, snelle hub wilt waarin alles al zit.

De documentatie houdt een aan de broncode getoetste vergelijking bij met Selenoid, Moon, Selenium Grid, Selenide, Playwright en Puppeteer, inclusief wanneer u beter voor een van die alternatieven kiest.

Migreren vanaf Selenoid

Laat uw clients naar de nieuwe hub wijzen. selenoid:options, de X-Selenoid-*-headers, het pad /aerokube/..., cm selenoid start en de vlag --selenoid-uri van de UI werken allemaal nog, en dat blijft zo.

De enige wijziging: binnen de Docker-image is de configuratie verplaatst van /etc/selenoid naar /etc/websummoner. Pas die mount aan, en u bent klaar.

Waartoe we ons verbinden

  • Compatibiliteit, voorgoed. De capability-namen, headers, paden en commando's van Selenoid worden blijvend geaccepteerd, niet als verouderd gemarkeerd met een aflopende termijn. Een migratie die een sprint kost, is een migratie die niemand uitvoert.
  • Actuele browsers. Images volgen de stabiele releases van elke leverancier, elk met de bijpassende driver, en geen image krijgt een tag voordat die de suite doorstaat.
  • Beveiliging up-to-date. Afhankelijkheden worden wekelijks bijgewerkt, elke build doorloopt een kwetsbaarheidscontrole, en de hub-image is ondertekend en wordt geleverd met een software bill of materials.
  • Productie voorop. We draaien WebSummoner zelf. Wat we uitbrengen, is waar we zelf van afhankelijk zijn.
  • Documentatie die zegt wat niet werkt. De volledige notities, inclusief beperkingen, staan in de aankondiging.

WebSummoner wil de concurrentie aangaan met de grootste grids op het terrein waar het wint: snelheid, eenvoud en de kosten van het beheer. Elke wijziging wordt aan die maatstaf getoetst.

Nu beschikbaar

Shell
websummoner \
    -p 4444:4444 \
    -v $PWD/browsers.json:/etc/websummoner/browsers.json:ro \
    -v /var/run/docker.sock:/var/run/docker.sock \
    websummoner/websummoner:latest

Laat uw tests naar http://localhost:4444/wd/hub wijzen. De volledige release notes, de migratiegids en het gesprek liggen allemaal op één klik afstand:

📣 De aankondiging van 1.0.0 De volledige release notes, en de plek om vragen te stellen 📖 Documentatie Handleidingen, naslag en de migratiegids 💻 Broncode Apache-2.0, op GitHub

Gebruikte u Selenoid en gedraagt iets zich bij de migratie niet zoals verwacht, dan is dat voor ons een bug, geen supportvraag. Hebt u iets onderhouden dat op Selenoid voortbouwt, laat het ons weten, dan zorgen we ervoor dat het blijft werken.

Roep een vloot browsers op in Docker-containers.

Een snelle Selenium-hub met kortstondige omgevingen per sessie.

Hulp nodig bij het draaien van WebSummoner in uw organisatie?

Neem contact met ons op

WebSummoner wordt ontwikkeld en onderhouden door RIADVICE onder Apache-2.0. Het bouwt voort op Selenoid van Aerokube en Ivan Krutov, en op de oorspronkelijke UI van Kirill Merkushev.

Deel dit artikel