În acest articol
Anunț de lansare
Șapte browsere actuale în Docker, un container pentru fiecare sesiune, înregistrări cu sunet. Descoperiți cum continuă WebSummoner proiectul Selenoid, arhivat din decembrie 2024, și de ce rulează în centrul propriei noastre infrastructuri de găzduire.
Dacă echipa dumneavoastră rulează teste Selenium, sunt șanse mari să fi întâlnit Selenoid: micul program Go care pornește un browser nou într-un container Docker pentru fiecare sesiune de test și îl elimină apoi. Rapid, ușor și, ani la rând, cel mai simplu mod de a rula o rețea de browsere pe propriul hardware. Pe 17 decembrie 2024, autorii lui au arhivat depozitul. Fără anunț, fără mesaj de rămas-bun: doar banda gri pe care GitHub o afișează pe un proiect în regim doar-citire, și atât.
August 2016 Primul commit Selenoid la Aerokube
17 decembrie 2024 Depozit arhivat, doar-citire
Septembrie 2026 WebSummoner 1.0.0: șapte browsere actuale, migrare într-o singură linie
În acea dimineață nu s-a stricat nimic, și exact aceasta este problema. Un instrument de testare arhivat se degradează după un calendar pe care nu îl controlați: versiunile noi de browser nu mai sosesc, driverele rămân în urmă și, într-o zi, o suită care a trecut ani de zile începe să pice din motive care nu au nicio legătură cu aplicația dumneavoastră.
Open source nu se termină odată cu un depozit
Arhivarea unui depozit pune capăt întreținerii lui, nu vieții lui. Selenoid este publicat sub licența Apache 2.0, care le dă tuturor utilizatorilor dreptul permanent de a-l modifica și redistribui: când autorii unui proiect merg mai departe, codul rămâne disponibil și un nou responsabil îl poate duce mai departe. Aerokube a creat Selenoid și l-a susținut timp de opt ani. Decizia de a-l arhiva le aparținea, iar meritul pentru tot ce Selenoid a făcut bine rămâne al lor. WebSummoner este această continuare. Pornește de la ultimul commit Selenoid, păstrează designul care l-a făcut bun și are propriul nume, propria organizație, propriile imagini și propriul domeniu. Foloseam deja Selenoid în producție la RIADVICE, iar continuarea lui era decizia înțeleaptă, pentru noi și pentru toți cei care depind de el.
WebSummoner 1.0.0 a fost lansat: un hub Selenium rapid, care aduce o flotă de browsere în containere Docker, ca medii efemere, limitate la durata unei sesiuni.
De ce am preluat Selenoid în loc să îl înlocuim
Am creat acest fork din două motive.
-
Propria noastră infrastructură WebSummoner face parte din coloana vertebrală a infrastructurii de găzduire RIADVICE. O dependență de producție care nu mai primește actualizări de browser, corecturi de driver sau patch-uri de securitate nu putea rămâne arhivată, iar trecerea la o soluție mai greoaie ar fi costat mai mult decât o întreținere făcută cum trebuie.
-
Comunitatea Echipe din întreaga lume au construit ani la rând suite de teste pe Selenoid și meritau o continuare întreținută, nu o degradare lentă. Selenoid a făcut bine lucrurile importante: un singur binar Go de aproximativ 10 MB, fără runtime Java, fără bază de date, un browser care pornește în aproximativ o secundă și un container pentru fiecare sesiune, astfel încât nimic să nu treacă de la un test la altul.
Am păstrat toate acestea și am adus la zi restul: browsere, drivere, imagini de bază și toolchain, toate înghețate din 2024. Selenoid este ceea ce s-ar putea numi un software încheiat: nu are nevoie de cea mai nouă funcție, ci de browsere actuale, drivere potrivite și corecturi constante, iar aceasta este munca pe care ne-am asumat-o. Compatibilitatea a fost prima decizie, nu un gând ulterior. Tot ce trimite un client Selenoid este în continuare acceptat, permanent.
Ce aduce nou versiunea 1.0.0
Șapte browsere, toate actuale
| Browser | Versiune |
|---|---|
| Chrome | 152 |
| Firefox | 155 |
| Edge | 152 |
| Opera revine | 135 |
| Brave nou | 1.94 |
| Yandex | 26.6 |
| Safari (WebKitGTK) nou | 2.52.6 |
Fiecare imagine trece aceeași suită de teste pentru containere, rulată izolat pe imaginile publicate. Cele două cazuri pe care driverele înseși nu le pot gestiona sunt documentate ca teste omise, nu ascunse. Trei dintre ele sunt o noutate în sine. Brave și Safari sunt publicate pentru prima dată: Selenoid nu a livrat niciodată o imagine Brave, iar sursele sale pentru Safari nu au fost niciodată publicate ca imagine. Opera revine din morți: ultima sa imagine Selenoid datează din aprilie 2024 și nu mai putea fi folosită cu Selenium 4 de când proiectul a renunțat la suportul pentru Opera.
Brave se alătură gamei
Brave este publicat pentru prima dată: Selenoid nu l-a livrat niciodată, iar acum stă alături de celelalte șase ca imagine de prim rang. Brave își numerotează versiunile după propria scară, așa că instrumentul de build citește versiunea Chromium inclusă în fiecare versiune și o asociază automat cu driverul potrivit. Dacă utilizatorii dumneavoastră navighează cu Brave, puteți testa pe el exact cum testați pe Chrome: aceleași capabilități, același ecran live, aceleași înregistrări și aceeași suită, trecută în același fel.
Opera funcționează din nou
Selenium a renunțat la suportul pentru Opera în versiunea 4.3.0, iar soluția de ocolire pe care o repetă toată lumea, controlarea Opera cu un chromedriver Chrome-for-Testing, pornește sesiunile fără probleme, dar blochează apoi motorul de randare de fiecare dată când o pagină deschide o fereastră. Soluția a venit din citirea atentă a mesajului de eroare: verificarea versiunii din OperaDriver este un avertisment, nu un refuz. Driverul propriu al Opera îl controlează corect, iar hubul îi cere protocolul modern în numele dumneavoastră.
Safari este o țintă de prim rang
Și Safari este publicat pentru prima dată. Imaginea este WebKitGTK, același motor pe care îl folosește Safari, compilat din surse: Selenoid avea fișierele de build, dar nu a publicat niciodată o imagine, așa că aceasta este prima pe care o puteți descărca. Două lucruri care nu funcționaseră niciodată cu ea, încărcarea fișierelor și capabilitatea de proxy, sunt acum gestionate chiar de hub, astfel încât corectura se aplică oricărei imagini, veche sau nouă. Cele două particularități rămase necesită fiecare câte o linie în teste, iar documentația precizează care anume.
Înregistrări cu sunet, pe fiecare browser
Înregistrările sesiunilor captează acum sunetul în mod fiabil pe toate cele șapte browsere, așa că un test media sau WebRTC eșuat nu mai înseamnă un videoclip mut. Dacă nu doriți sunet, o singură capabilitate îl dezactivează.
Construit pentru operațiuni
Un endpoint Prometheus /metrics, sonde de sănătate care răspund la cereri HEAD, un răspuns 429 corect când coada este plină, încărcare de fișiere care funcționează pe fiecare imagine, imagini de versiune semnate, însoțite de o listă a componentelor software (SBOM), și o politică de securitate care spune clar ce înseamnă socketul Docker.
O interfață reconstruită
WebSummoner UI, vizualizarea live a rețelei dumneavoastră, cu ecranul browserului, jurnalele și coada, a fost reconstruită de la zero: o temă întunecată atent gândită, logourile oficiale ale browserelor, statistici live despre sesiuni și coadă și o raportare onestă a conexiunii. Liniile de comandă și fișierele Compose existente nu necesită nicio modificare.
Un toolchain modern
Go 1.27, Java 25 pentru suita de teste, React 19 pentru interfață, Ubuntu 26.04 pentru imaginile de browser, actualizări de dependențe și verificări de vulnerabilități în CI și un site de documentație în care se poate căuta. Pentru a compila orice parte a proiectului aveți nevoie doar de Docker. Load balancerul pentru clustere cu mai multe huburi și programul de instalare cu o singură comandă au evoluat odată cu hubul.
Dacă alegeți astăzi
Nu există un înlocuitor perfect pentru ce făcea Selenoid, dar există variante potrivite, spuse cinstit.
Selenium Grid Implementarea de referință. Alegerea potrivită dacă doriți modul său distribuit și nu vă deranjează amprenta Java.
Moon Alegerea potrivită dacă rulați pe Kubernetes și acceptați o licență comercială peste patru sesiuni paralele.
WebSummoner Pentru gazde Docker și mașini virtuale, unde vă doriți un hub mic, rapid și complet echipat.
Documentația include o comparație verificată pe surse cu Selenoid, Moon, Selenium Grid, Selenide, Playwright și Puppeteer, inclusiv situațiile în care este mai bine să le alegeți pe acestea.
Migrarea de la Selenoid
Îndreptați clienții către noul hub. selenoid:options, anteturile X-Selenoid-*, calea /aerokube/..., cm selenoid start și opțiunea --selenoid-uri a interfeței funcționează în continuare și vor continua să funcționeze.
Singura schimbare: în imaginea Docker, configurația s-a mutat din /etc/selenoid în /etc/websummoner. Actualizați acest mount și ați terminat.
Angajamentele noastre
- Compatibilitate, permanent. Numele capabilităților, anteturile, căile și comenzile Selenoid sunt acceptate definitiv, nu marcate ca învechite cu termen de expirare. O migrare care costă un sprint nu este o migrare pe care o face cineva.
- Browsere actuale. Imaginile urmează versiunile stabile ale fiecărui producător, fiecare cu driverul corespunzător, și nicio imagine nu este etichetată înainte de a trece suita.
- Securitate la zi. Dependențele sunt actualizate săptămânal, fiecare build trece printr-o verificare de vulnerabilități, iar imaginea hubului este semnată și vine cu o listă a componentelor software (SBOM).
- Producția pe primul loc. Folosim WebSummoner noi înșine. Ce livrăm este exact ce folosim.
- Documentație care spune ce nu funcționează. Notele complete, inclusiv limitările, se află în anunț.
WebSummoner își propune să concureze cu cele mai mari rețele pe terenul unde câștigă: viteză, simplitate și costul de operare. Fiecare schimbare este măsurată după acest standard.
Disponibil acum
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Îndreptați testele către http://localhost:4444/wd/hub. Notele complete ale versiunii, ghidul de migrare și discuția sunt la un clic distanță:
📣 Anunțul versiunii 1.0.0 Notele complete ale versiunii și locul unde puteți pune întrebări 📖 Documentație Ghiduri, referință și ghidul de migrare 💻 Cod sursă Apache-2.0, pe GitHub
Dacă ați folosit Selenoid și ceva din migrare nu se comportă cum trebuie, pentru noi este o eroare, nu o întrebare de suport. Dacă ați întreținut ceva construit peste Selenoid, spuneți-ne și ne vom asigura că funcționează în continuare.
Aduceți o flotă de browsere în containere Docker.
Un hub Selenium rapid, cu medii efemere, limitate la durata unei sesiuni.
Aveți nevoie de ajutor pentru a rula WebSummoner în organizația dumneavoastră?
WebSummoner este dezvoltat și întreținut de RIADVICE sub licența Apache-2.0. Se bazează pe Selenoid, creat de Aerokube și Ivan Krutov, și pe interfața originală realizată de Kirill Merkushev.





