Ugrás a tartalomra
Minden cikk

WebSummoner 1.0: a Selenoid újra életre kel

Szerző: Ghazi Triki · 7 perc olvasás

A WebSummoner kiadása
A cikk tartalma

Kiadási közlemény

Hét naprakész böngésző Dockerben, munkamenetenként egy konténer, hangos felvételek. Ismerje meg, hogyan viszi tovább a WebSummoner a 2024 decembere óta archivált Selenoidot, és miért fut saját tárhelyinfrastruktúránk magjában.

Ha csapata Selenium-teszteket futtat, jó eséllyel találkozott már a Selenoiddal: azzal a kis Go-programmal, amely minden tesztmunkamenethez friss böngészőt indít egy Docker-konténerben, majd utána eldobja. Gyors, könnyű, és évekig ez volt a legegyszerűbb módja annak, hogy saját hardveren böngészőgridet futtasson. 2024. december 17-én a szerzői archiválták a tárolót. Bejelentés és búcsúbejegyzés nélkül: csak az a szürke sáv jelent meg, amelyet a GitHub az írásvédett projektekre tesz, és ennyi volt.

  1. augusztus: az első Selenoid-commit az Aerokube-nál

  2. december 17.: a tárolót archiválták, írásvédett

  3. szeptember: WebSummoner 1.0.0, hét naprakész böngésző, egysoros migráció

Aznap reggel semmi sem romlott el, és éppen ez a gond. Egy archivált teszteszköz olyan ütemben avul el, amelyre nincs ráhatása: új böngészőverziók soha nem érkeznek, a driverek elcsúsznak, és egy napon egy évek óta zöld tesztkészlet olyan okokból kezd hibázni, amelyeknek semmi közük az alkalmazásához.

A nyílt forráskód nem ér véget egy tárolóval

Egy tároló archiválása a karbantartását zárja le, nem az életét. A Selenoid az Apache 2.0 licenc alatt jelent meg, amely mindenkinek, aki használja, végleges jogot ad a módosításra és a továbbterjesztésre: ha egy projekt szerzői továbblépnek, a kód elérhető marad, és egy új karbantartó viheti tovább. Az Aerokube építette a Selenoidot, és nyolc évig vitte; az archiválásról ők dönthettek, és ami a Selenoidban jól sikerült, az az ő érdemük marad. A WebSummoner ennek a folytatása. Az utolsó Selenoid-commitból indul, megtartja azt a felépítést, amely jóvá tette, és saját nevet, szervezetet, képeket és domaint kapott. A RIADVICE-nál már éles üzemben futtattuk a Selenoidot, és a továbbvitele volt a megalapozott döntés, nekünk és mindenki másnak is, aki rá épít.

Megjelent a WebSummoner 1.0.0: gyors Selenium-hub, amely böngészők egész seregét idézi meg Docker-konténerekben, ideiglenes, munkamenethez kötött környezetként.

Miért forkoltuk a Selenoidot ahelyett, hogy lecseréltük volna

Két okból forkoltuk.

  1. Saját infrastruktúránk: a WebSummoner a RIADVICE tárhelyinfrastruktúrájának egyik gerince. Egy olyan éles függőséget, amely már nem kap böngészőfrissítéseket, driverjavításokat és biztonsági javításokat, nem hagyhattunk archivált állapotban, és egy nehezebb megoldásra való átállás többe került volna, mint a gondos karbantartás.

  2. A közösség: világszerte csapatok építettek évek munkájával tesztkészleteket a Selenoidra, és karbantartott folytatást érdemeltek, nem lassú hanyatlást. A Selenoid a fontos dolgokat jól csinálta: egyetlen, körülbelül 10 MB-os Go-bináris, nincs Java-futtatókörnyezet, nincs adatbázis, a böngésző nagyjából egy másodperc alatt elindul, és munkamenetenként egy konténer fut, így semmi sem szivárog át a tesztek között.

Mindezt megtartottuk, a többit pedig naprakésszé tettük: a böngészőket, a drivereket, az alapképeket és az eszközláncot, amelyek 2024 óta be voltak fagyasztva. A Selenoid úgynevezett kész szoftver: nincs szüksége a legújabb funkcióra, naprakész böngészőkre, hozzájuk illő driverekre és folyamatos javításokra van szüksége, és ezt a munkát vállaltuk el. A kompatibilitás volt az első döntés, nem utólagos szempont. Mindent, amit egy Selenoid-kliens küld, továbbra is elfogadunk, véglegesen.

Az 1.0.0 újdonságai

Hét böngésző, mind naprakész

BöngészőVerzió
Chrome152
Firefox155
Edge152
Opera (visszatért)135
Brave (új)1.94
Yandex26.6
Safari (WebKitGTK) (új)2.52.6

Minden kép ugyanazon a konténeres tesztkészleten megy át, amely elszigetelten fut a közzétett képeken. Azt a két esetet, amelyet maguk a driverek sem tudnak kezelni, kihagyásként dokumentáljuk, nem rejtjük el. Ezek közül három önmagában is hír. A Brave és a Safari először jelenik meg: a Selenoid soha nem adott ki Brave-képet, Safari-forrásaiból pedig soha nem készült kiadott kép. Az Opera feltámadt: utolsó Selenoid-képe 2024 áprilisából való, és a Selenium 4-gyel használhatatlan volt, mióta a projekt megszüntette az Opera támogatását.

A Brave is csatlakozik

A Brave először jelenik meg: a Selenoid soha nem adta ki, most pedig első osztályú képként áll a másik hat mellett. A Brave saját skálán számozza a kiadásait, ezért a buildeszköz kiolvassa az egyes kiadásokba ágyazott Chromium-verziót, és automatikusan párosítja a hozzá illő driverrel. Ha felhasználói Brave-vel böngésznek, pontosan úgy tesztelhet rajta, mint a Chrome-on: ugyanazokkal a képességekkel, ugyanazzal az élő képernyővel, ugyanazokkal a felvételekkel, és ugyanaz a tesztkészlet ugyanúgy megy át rajta.

Az Opera újra működik

A Selenium a 4.3.0-s verzióban megszüntette az Opera támogatását, és a mindenki által ismételgetett kerülőmegoldás, vagyis az Opera vezérlése egy Chrome-for-Testing chromedriverrel, rendben elindítja a munkameneteket, majd összeomlasztja a renderelőt, amikor egy oldal ablakot nyit. A megoldáshoz elég volt rendesen elolvasni a hibaüzenetet: az OperaDriver verzióellenőrzése figyelmeztetés, nem elutasítás. Az Opera saját drivere helyesen vezérli, a hub pedig az Ön nevében a modern protokollt kéri tőle.

A Safari első osztályú célplatform

A Safari is először jelenik meg. A kép WebKitGTK, ugyanaz a motor, amelyet a Safari is használ, forrásból építve: a Selenoid tartalmazta a buildfájlokat, de képet soha nem adott ki, így ez az első, amelyet letölthet. Két dolog, amely korábban soha nem működött vele, a fájlfeltöltés és a proxy-képesség, mostantól a hubban kap kezelést, így a javítás bármely képre érvényes, régire és újra egyaránt. A két megmaradt sajátosság mindegyike egy-egy sort igényel a tesztjeiben, és a dokumentáció megmondja, melyiket.

Hangos felvételek minden böngészőn

A munkamenet-felvételek mostantól mind a hét böngészőn megbízhatóan rögzítik a hangot, így egy hibázó média- vagy WebRTC-teszt már nem néma videó. Ha nincs szüksége hangra, egyetlen képességgel kikapcsolhatja.

Üzemeltetésre tervezve

Prometheus /metrics végpont, HEAD kérésekre is válaszoló állapotellenőrzések, szabályos 429-es válasz, ha a sor megtelt, minden képen működő fájlfeltöltés, aláírt kiadási képek szoftverösszetevő-jegyzékkel (SBOM), és olyan biztonsági szabályzat, amely egyenesen kimondja, mit jelent a Docker-socket.

Újraépített felhasználói felület

A WebSummoner UI, vagyis a grid élő nézete a böngésző képernyőjével, a naplókkal és a sorral, az alapoktól újjáépült: átgondolt sötét téma, hivatalos böngészőlogók, élő munkamenet- és sorstatisztikák, valamint őszinte kapcsolatállapot-jelzés. A meglévő parancssorokon és Compose-fájlokon semmit sem kell módosítani.

Modern eszközlánc

Go 1.27, Java 25 a tesztkészlethez, React 19 a felhasználói felülethez, Ubuntu 26.04 a böngészőképekhez, függőségfrissítések és sérülékenységvizsgálat a CI-ban, valamint kereshető dokumentációs oldal. A projekt bármely részének építéséhez csak Dockerre van szükség. A több hubból álló klaszterek terheléselosztója és az egyparancsos telepítő a hubbal együtt fejlődött.

Ha most választ

A Selenoid tökéletes helyettesítője nem létezik, de vannak tisztességesen illeszkedő megoldások.

Selenium Grid: a referencia-implementáció. Akkor a jó választás, ha az elosztott módjára van szüksége, és nem zavarja a Java erőforrásigénye.

Moon: akkor érdemes választani, ha Kubernetesen fut, és négy párhuzamos munkamenet felett elfogad egy kereskedelmi licencet.

WebSummoner: Docker-gazdagépekre és virtuális gépekre, ha kicsi, gyors, mindennel felszerelt hubra van szüksége.

A dokumentáció egy forrásokkal ellenőrzött összehasonlítást is tartalmaz a Selenoiddal, a Moonnal, a Selenium Griddel, a Selenide-dal, a Playwrighttal és a Puppeteerrel, beleértve azt is, mikor érdemes inkább azokat választani.

Migráció a Selenoidról

Irányítsa klienseit az új hubra. A selenoid:options, az X-Selenoid-* fejlécek, az /aerokube/... útvonal, a cm selenoid start és a felhasználói felület --selenoid-uri kapcsolója mind működik, és továbbra is működni fog.

Az egyetlen változás: a Docker-képen belül a konfiguráció az /etc/selenoid helyről az /etc/websummoner helyre költözött. Frissítse ezt a csatolást, és kész.

Amit vállalunk

  • Kompatibilitás, véglegesen. A Selenoid képességneveit, fejléceit, útvonalait és parancsait véglegesen elfogadjuk, nem vezetjük ki őket határidővel. Egy sprintnyi munkát igénylő migrációt senki sem végez el.
  • Naprakész böngészők. A képek követik az egyes gyártók stabil kiadásait, mindegyik a hozzá illő driverrel, és egyetlen kép sem kap címkét, amíg át nem megy a tesztkészleten.
  • Folyamatos biztonság. A függőségeket hetente frissítjük, minden build sérülékenységvizsgálaton megy át, a hubkép pedig aláírt, és szoftverösszetevő-jegyzékkel érkezik.
  • Az éles üzem az első. A WebSummonert mi magunk is futtatjuk. Amit kiadunk, arra mi is támaszkodunk.
  • Dokumentáció, amely azt is megmondja, mi nem működik. A teljes megjegyzések, a korlátozásokkal együtt, a bejelentésben olvashatók.

A WebSummoner azon a terepen kíván versenyre kelni a legnagyobb gridekkel, ahol nyer: a sebességben, az egyszerűségben és az üzemeltetés költségében. Minden változtatást ehhez a mércéhez igazítunk.

Már elérhető

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

Irányítsa tesztjeit a http://localhost:4444/wd/hub címre. A teljes kiadási megjegyzések, a migrációs útmutató és a beszélgetés egy kattintásnyira van:

📣 Az 1.0.0 bejelentése: a teljes kiadási megjegyzések, és itt teheti fel kérdéseit 📖 Dokumentáció: útmutatók, referencia és a migrációs útmutató 💻 Forráskód: Apache-2.0, a GitHubon

Ha Selenoidot futtatott, és a migráció során valami nem úgy működik, ahogy kellene, az számunkra hiba, nem támogatási kérdés. Ha a Selenoidra épülő megoldást tartott karban, szóljon nekünk, és gondoskodunk róla, hogy tovább működjön.

Idézzen meg böngészők egész seregét Docker-konténerekben.

Gyors Selenium-hub ideiglenes, munkamenethez kötött környezetekkel.

Segítségre van szüksége a WebSummoner szervezeti üzemeltetéséhez?

Lépjen kapcsolatba velünk

A WebSummonert a RIADVICE fejleszti és tartja karban Apache-2.0 licenc alatt. Az Aerokube és Ivan Krutov Selenoidjára, valamint Kirill Merkushev eredeti felhasználói felületére épül.

A cikk megosztása