Zum Inhalt springen
Alle Artikel

WebSummoner 1.0: Selenoid, zu neuem Leben erweckt

von Ghazi Triki · 8 Min. Lesezeit

Release-Grafik zu WebSummoner 1.0
In diesem Artikel

Release-Ankündigung

Sieben aktuelle Browser in Docker, ein Container pro Sitzung, Aufzeichnungen mit Ton. Erfahren Sie, wie WebSummoner Selenoid fortführt, das seit Dezember 2024 archiviert ist, und warum es im Kern unserer eigenen Hosting-Infrastruktur läuft.

Wenn Ihr Team Selenium-Tests ausführt, sind Sie Selenoid wahrscheinlich schon begegnet: dem kleinen Go-Programm, das für jede Testsitzung einen frischen Browser in einem Docker-Container startet und ihn danach wieder verwirft. Schnell, leicht und jahrelang der einfachste Weg, ein Browser-Grid auf eigener Hardware zu betreiben. Am 17. Dezember 2024 haben die Autoren das Repository archiviert. Keine Ankündigung, kein Abschiedsbeitrag: nur das graue Banner, das GitHub über ein schreibgeschütztes Projekt legt, und das war es.

August 2016 Erster Selenoid-Commit bei Aerokube

  1. Dezember 2024 Repository archiviert, schreibgeschützt

September 2026 WebSummoner 1.0.0: sieben aktuelle Browser, Migration mit einer Zeile

An jenem Morgen ging nichts kaputt, und genau das ist das Problem. Ein archiviertes Testwerkzeug veraltet nach einem Zeitplan, den Sie nicht bestimmen: Neue Browserversionen kommen nie an, Treiber driften auseinander, und eines Tages schlägt eine Testsuite, die jahrelang grün war, aus Gründen fehl, die nichts mit Ihrer Anwendung zu tun haben.

Open Source endet nicht mit einem Repository

Die Archivierung eines Repositorys beendet seine Pflege, nicht sein Leben. Selenoid steht unter der Lizenz Apache 2.0, die allen Nutzenden das dauerhafte Recht gibt, die Software zu ändern und weiterzuverbreiten: Wenn sich die Autoren eines Projekts anderen Dingen zuwenden, bleibt der Code verfügbar, und neue Maintainer können ihn weiterführen. Aerokube hat Selenoid entwickelt und acht Jahre lang getragen; die Archivierung war ihre Entscheidung, und der Verdienst für alles, was Selenoid richtig gemacht hat, bleibt ihrer. WebSummoner ist diese Fortführung. Es setzt beim letzten Selenoid-Commit an, behält das Design bei, das Selenoid gut gemacht hat, und trägt einen eigenen Namen, eine eigene Organisation, eigene Images und eine eigene Domain. Wir hatten Selenoid bei RIADVICE bereits im Produktivbetrieb im Einsatz, und es fortzuführen war die vernünftige Entscheidung, für uns und für alle anderen, die darauf angewiesen sind.

WebSummoner 1.0.0 ist erschienen: ein schneller Selenium-Hub, der eine ganze Flotte von Browsern in Docker-Containern als kurzlebige, sitzungsgebundene Umgebungen herbeiruft.

Warum wir Selenoid geforkt statt ersetzt haben

Wir haben es aus zwei Gründen geforkt.

  1. Unsere eigene Infrastruktur: WebSummoner gehört zum Rückgrat der Hosting-Infrastruktur von RIADVICE. Eine Abhängigkeit im Produktivbetrieb, die keine Browser-Updates, Treiberkorrekturen oder Sicherheitspatches mehr erhält, konnten wir nicht archiviert lassen, und ein Umstieg auf etwas Schwergewichtigeres hätte mehr gekostet, als sie gut zu pflegen.

  2. Die Community: Teams auf der ganzen Welt haben über Jahre Testsuiten auf Selenoid aufgebaut, und sie verdienten eine gepflegte Fortführung statt eines langsamen Verfalls. Selenoid hat das Wichtige richtig gemacht: eine einzige Go-Binärdatei von rund 10 MB, keine Java-Laufzeitumgebung, keine Datenbank, ein Browser, der in etwa einer Sekunde startet, und ein Container pro Sitzung, sodass zwischen Tests nichts durchsickert.

All das haben wir beibehalten und den Rest auf den aktuellen Stand gebracht: Browser, Treiber, Basis-Images und Toolchain, die seit 2024 eingefroren waren. Selenoid ist, was man fertige Software nennen könnte: Sie braucht nicht die neueste Funktion, sondern aktuelle Browser, passende Treiber und stetige Korrekturen, und genau diese Arbeit haben wir übernommen. Kompatibilität war die erste Entscheidung, kein nachträglicher Gedanke. Alles, was ein Selenoid-Client sendet, wird weiterhin akzeptiert, dauerhaft.

Was ist neu in 1.0.0

Sieben Browser, alle aktuell

BrowserVersion
Chrome152
Firefox155
Edge152
Opera wieder da135
Brave neu1.94
Yandex26.6
Safari (WebKitGTK) neu2.52.6

Jedes Image durchläuft dieselbe Container-Testsuite, isoliert gegen die veröffentlichten Images ausgeführt. Die beiden Fälle, die die Treiber selbst nicht bewältigen, sind als übersprungene Tests dokumentiert, nicht versteckt. Drei davon sind für sich schon eine Neuigkeit. Brave und Safari werden zum ersten Mal veröffentlicht: Selenoid hat nie ein Brave-Image ausgeliefert, und seine Safari-Quellen wurden nie als Image veröffentlicht. Opera ist zurück: Das letzte Selenoid-Image stammt vom April 2024, und seit das Projekt die Opera-Unterstützung eingestellt hatte, war es mit Selenium 4 nicht mehr nutzbar.

Brave kommt hinzu

Brave wird zum ersten Mal veröffentlicht: Selenoid hat es nie ausgeliefert, und nun steht es gleichberechtigt neben den sechs anderen als vollwertiges Image. Brave nummeriert seine Releases nach eigenem Schema, deshalb liest das Build-Werkzeug die in jedem Release eingebettete Chromium-Version aus und ordnet ihr automatisch den passenden Treiber zu. Wenn Ihre Nutzer mit Brave surfen, können Sie darauf genauso testen wie auf Chrome: dieselben Capabilities, derselbe Live-Bildschirm, dieselben Aufzeichnungen und dieselbe Testsuite, auf dieselbe Weise bestanden.

Opera funktioniert wieder

Selenium hat die Opera-Unterstützung mit 4.3.0 eingestellt, und der überall wiederholte Workaround, Opera mit einem chromedriver aus Chrome for Testing zu steuern, startet Sitzungen zwar problemlos, bringt aber den Renderer zum Absturz, sobald eine Seite ein Fenster öffnet. Die Lösung bestand darin, die Fehlermeldung genau zu lesen: Die Versionsprüfung von OperaDriver ist eine Warnung, keine Ablehnung. Operas eigener Treiber steuert den Browser korrekt, und der Hub fordert für Sie das moderne Protokoll an.

Safari ist ein vollwertiges Ziel

Auch Safari wird zum ersten Mal veröffentlicht. Das Image basiert auf WebKitGTK, derselben Engine, die Safari verwendet, aus dem Quellcode gebaut: Selenoid enthielt zwar die Build-Dateien, hat aber nie ein Image veröffentlicht, deshalb ist dies das erste, das Sie per Pull beziehen können. Zwei Dinge, die damit nie funktioniert haben, der Datei-Upload und die Proxy-Capability, übernimmt jetzt der Hub selbst, sodass die Korrektur für jedes Image gilt, ob alt oder neu. Die beiden verbleibenden Eigenheiten erfordern jeweils eine Zeile in Ihren Tests, und die Dokumentation sagt, welche.

Aufzeichnungen mit Ton, in jedem Browser

Sitzungsaufzeichnungen erfassen den Ton jetzt zuverlässig in allen sieben Browsern, sodass ein fehlschlagender Medien- oder WebRTC-Test kein stummes Video mehr ist. Wer keinen Ton möchte, schaltet ihn mit einer Capability ab.

Für den Betrieb gebaut

Ein Prometheus-Endpunkt /metrics, Health-Probes, die auf HEAD-Anfragen antworten, ein korrektes 429, wenn die Warteschlange voll ist, ein Datei-Upload, der in jedem Image funktioniert, signierte Release-Images mit Software-Stückliste (SBOM) und eine Sicherheitsrichtlinie, die klar benennt, was der Docker-Socket bedeutet.

Eine neu gebaute Oberfläche

WebSummoner UI, die Live-Ansicht Ihres Grids mit Browserbildschirm, Protokollen und Warteschlange, wurde von Grund auf neu gebaut: ein durchdachtes dunkles Design, offizielle Browserlogos, Live-Statistiken zu Sitzungen und Warteschlange und eine ehrliche Anzeige des Verbindungsstatus. Bestehende Befehlszeilen und Compose-Dateien müssen nicht geändert werden.

Eine moderne Toolchain

Go 1.27, Java 25 für die Testsuite, React 19 für die Oberfläche, Ubuntu 26.04 für die Browser-Images, Abhängigkeitsupdates und Schwachstellenprüfungen in der CI und eine durchsuchbare Dokumentationswebsite. Um einen beliebigen Teil des Projekts zu bauen, brauchen Sie nur Docker. Der Load Balancer für Cluster mit mehreren Hubs und das Installationsprogramm mit einem einzigen Befehl wurden zusammen mit dem Hub weiterentwickelt.

Wenn Sie heute eine Wahl treffen

Einen perfekten Ersatz für das, was Selenoid geleistet hat, gibt es nicht, wohl aber ehrliche Alternativen.

Selenium Grid: Die Referenzimplementierung. Die richtige Wahl, wenn Sie den verteilten Modus nutzen möchten und der Java-Ressourcenbedarf Sie nicht stört.

Moon: Die Wahl, wenn Sie auf Kubernetes arbeiten und ab mehr als vier parallelen Sitzungen eine kommerzielle Lizenz in Kauf nehmen.

WebSummoner: Für Docker-Hosts und virtuelle Maschinen, wenn Sie einen kleinen, schnellen Hub mit allem Nötigen an Bord suchen.

Die Dokumentation pflegt einen anhand der Quellen geprüften Vergleich mit Selenoid, Moon, Selenium Grid, Selenide, Playwright und Puppeteer, einschließlich der Fälle, in denen Sie besser zu diesen greifen.

Migration von Selenoid

Richten Sie Ihre Clients auf den neuen Hub aus. selenoid:options, die Header X-Selenoid-*, der Pfad /aerokube/..., cm selenoid start und das Flag --selenoid-uri der Oberfläche funktionieren weiterhin, und das bleibt so.

Die einzige Änderung: Im Docker-Image ist die Konfiguration von /etc/selenoid nach /etc/websummoner umgezogen. Passen Sie diesen Mount an, und Sie sind fertig.

Wozu wir uns verpflichten

  • Kompatibilität, dauerhaft. Die Capability-Namen, Header, Pfade und Befehle von Selenoid werden dauerhaft akzeptiert, nicht mit Ablaufdatum als veraltet markiert. Eine Migration, die einen ganzen Sprint kostet, nimmt niemand in Angriff.
  • Aktuelle Browser. Die Images folgen den stabilen Releases der jeweiligen Hersteller, jeweils mit dem passenden Treiber, und kein Image wird getaggt, bevor es die Testsuite bestanden hat.
  • Sicherheit auf dem aktuellen Stand. Abhängigkeiten werden wöchentlich aktualisiert, jeder Build durchläuft eine Schwachstellenprüfung, und das Hub-Image ist signiert und wird mit einer Software-Stückliste ausgeliefert.
  • Produktivbetrieb zuerst. Wir betreiben WebSummoner selbst. Was wir ausliefern, ist das, worauf wir uns selbst verlassen.
  • Dokumentation, die sagt, was nicht funktioniert. Die vollständigen Hinweise, einschließlich der Einschränkungen, stehen in der Ankündigung.

WebSummoner tritt an, um mit den größten Grids dort zu konkurrieren, wo es überlegen ist: bei Geschwindigkeit, Einfachheit und Betriebskosten. Jede Änderung wird an diesem Maßstab gemessen.

Ab sofort verfügbar

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

Richten Sie Ihre Tests auf http://localhost:4444/wd/hub aus. Die vollständigen Release Notes, der Migrationsleitfaden und die Diskussion sind nur einen Klick entfernt:

📣 Die Ankündigung zu 1.0.0: die vollständigen Release Notes und der Ort für Ihre Fragen 📖 Dokumentation: Leitfäden, Referenz und Migrationsleitfaden 💻 Quellcode: Apache-2.0, auf GitHub

Wenn Sie Selenoid genutzt haben und sich bei der Migration etwas nicht wie erwartet verhält, ist das für uns ein Fehler, keine Supportfrage. Wenn Sie etwas auf Basis von Selenoid gepflegt haben, sagen Sie es uns, und wir sorgen dafür, dass es weiter funktioniert.

Rufen Sie eine Flotte von Browsern in Docker-Container.

Ein schneller Selenium-Hub mit kurzlebigen, sitzungsgebundenen Umgebungen.

Brauchen Sie Unterstützung beim Betrieb von WebSummoner in Ihrer Organisation?

Kontaktieren Sie uns

WebSummoner wird von RIADVICE unter Apache-2.0 entwickelt und gepflegt. Es baut auf Selenoid von Aerokube und Ivan Krutov sowie auf der ursprünglichen Oberfläche von Kirill Merkushev auf.

Diesen Artikel teilen