In diesem Blogartikel stellen wir die wichtigsten Funktionen von Selenium 4.0 vor und beantworten die Frage: Wie sinnvoll ist es, auf Selenium 4.0 umzusteigen?
Selenium ist eines der bekanntesten und beliebtesten Open-Source-Tools für die Testautomatisierung von Webanwendungen. Das zeigt auch eine Umfrage unserer Geschäftsführerin Karina Wagner bei LinkedIn. Die Ergebnisse sind mehr als eindeutig: Die Mehrheit der Teilnehmer:innen – 15 von 18 Personen – hat mit dem Tool Selenium die besten Erfahrungen gesammelt.
Doch was macht Selenium so beliebt? Selenium ist nicht nur ein Tool, sondern beinhaltet eine Reihe unterschiedlicher Komponenten für jedes Bedürfnis. Selenium unterstützt alle gängigen Browser, Betriebssysteme und mehrere Programmiersprachen wie C#, Java oder Python. Veröffentlicht wurde Selenium 1.0 im Jahr 2004. Damals bestand es aus folgenden Komponenten:
Selenium IDE, Selenium RC und Selenium Grid.
Am leichtesten zu bedienen, ist die Selenium die. Sie steht als Firefox oder Chrome-Add-on zur Verfügung und gestattet es, die Testfälle auch ohne Programmierkenntnisse zu automatisieren. Mit dem Tool können die Benutzeraktionen ohne Probleme aufgezeichnet und wiedergegeben werden.
Selenium RC ist die Komponente für die Fernsteuerung und erlaubt es, die Testfälle in beliebiger Programmiersprache und für jede HTTP Website zu automatisieren.
Selenium Grid ermöglicht es, unterschiedliche Testfälle, auf unterschiedlichen Betriebssystemen und unterschiedlicher Hardware auszuführen.
In der Selenium 2.0 Version kam Selenium WebDriver hinzu mit dem Ziel, eine entscheidende Schnittstelle für die Simulation von User-Interaktionen in verschiedenen Browser zu schaffen. In der Version Selenium 3.0 verschwand Selenium RC. Der WebDriver wurde optimiert.
Am 13. Oktober 2021 erschien die lang erwartete, erste stabile Version von Selenium 4.0. Das sind die wichtigsten Neuerungen:
Bisher war die Kommunikation zwischen dem Selenium WebDriver und den eigentlichen Webbrowser durch Client-Server-Architektur als «Request» und «Response» Schnittschnellte mit zusätzlichem JSON-Drahtprotokoll verankert. Dieses Protokoll verschlüsselt und entschlüsselt die gesamte Kommunikation zwischen Selenium und Webbrowser. In der neuen Version ist diese Kommunikation nun viel einfacher und schneller, denn das Protokoll ist jetzt überflüssig und wird nicht angewandt. In der Praxis bedeutet das, dass jede Anwendung, die W3C Standardisierung verfolgt, direkt integriert werden kann. Die aktuellen Webbrowser der verschiedenen Hersteller haben bereits diese W3C-Standard-Konformität.
Wer bereits einmal einen automatischen Testscript geschrieben hat, weiß genau, dass das Auffinden bestimmter GUI-Elemente viel Zeit in Anspruch nimmt. Sobald diese identifiziert wurden, gibt es dennoch keine Garantie, dass die Automatisierung jedes Mal erfolgreich verläuft. Es ist die Aufgabe der Test-Automatisiererin oder des Test-Automatisierers, die Locators über das gesamte Softwareprojekt hinweg zu verwalten und zu pflegen.
Um einen Locator in Selenium zu identifizieren, müsste der User die hierarchischen Baumknoten im DOM anhand von XPath bzw. CSS-Selektor festlegen. An dieser Stelle kommen die «Relative Locators» ins Spiel: Diese ermöglichen es, die GUI-Elemente basierend auf ihrer tatsächlichen Position zu identifizieren. Zu den bereits bestehenden acht Locator-Strategien kommen in der neuen Version zusätzliche Locators hinzu, die Elemente bezüglich ihrer Nachbarelemente lokalisieren können.
Nun ist es möglich, für einen einzigen Testdurchlauf mehrere Fenster oder ein Fenster mit Registerkarte durch diese beiden Methoden zu öffnen:
drive.switchTo().newWindow(WindowType.WINDOW);
öffne neues Fenster und wechsle dorthin
drive.switchTo().newWindow(WindowType.TAB);
öffne neue Registerkarte und wechsle dorthin
Neben der optimierten Benutzeroberfläche wurden in der neusten Selenium IDE Version auch die Exportfunktion, CLI-Runner und Reporting verbessert. Testautomatisiererinnen und -automatisierer können nun den Code der Programmiersprachen «Java», «Python», «JavaScript», «.Net» und «Ruby» schnell und effizient exportieren. Mit dem CLI-Runner sind die Wiedergabe sowie parallele Runs auf mehreren Webbrowsern möglich. Das Reporting beinhaltet nun Details zur Gesamtanzahl der erfolgreichen und fehlgeschlagenen Testfälle und zur Zeit der Ausführung. Zudem wurden die Stabilität und die Zuverlässigkeit des Selenium IDEs verbessert.
Die Klasse «action class» wird in Selenium IDE benötigt, um Eingabe-Aktionen einer Maus oder einer Tastatur auf Webelementen z.B. «left click», «right click», «double click» zu simulieren.
Ab sofort unterstützt der Chrome Browser die «Chrome DevTools-Protokolle» – sprich die Entwicklungstools – und ermöglicht dem Benutzer, Profiler, Netzwerk, Leistungen, Sicherheit, Ressourcen, Cache, CDP-Domänen etc. abzurufen. Diese Entwicklungstools wurden direkt in den Chrome Browser eingebaut und ermöglichen den Usern, die Probleme mit dem Testscript effizienter zu überprüfen. Neu ist auch die Klasse «ChromiumDriver class», die zwei Methoden inkludiert, die den Zugang zu Chrome-Entwicklungstools ermöglichen:
In der Vergangenheit war die Bedienung von Selenium Grid alles andere als selbstverständlich und einfach. Das hat sich nun geändert: Nun gibt es eine benutzerfreundliche GUI, die Informationen zu Laufzeit und Sitzungskapazität übersichtlich darstellt.
Auch die Probleme aus der vorherigen Version wurden komplett beseitigt. Sie betreffen vor allem die Installation an sich und die Konnektivität zwischen Knoten und dem Hub. Knoten dienen dazu, die Steuerung der Testfälle auf den jeweiligen Endsystemen auszuführen. Diese können jetzt mehrfach verwendet werden. Der Startprozess ermöglicht es, das Tool einfach zu bedienen und Hub und Knoten parallel zu starten.
Anstatt komplizierte «Virtual Machines» einzurichten, können nun Docker eingesetzt werden. Selenium Grid ist außerdem sehr hilfreich beim DevOps-Prozess und erlaubt die Integration unter anderem mit den Tools AWS oder Azure.
Viele interessante Funktionen wurden überarbeitet bzw. optimiert und laufen in der aktuellen Version viel stabiler und flüssiger. Es macht Spaß, die Testfälle mit Selenium 4.0 zu automatisieren und die neue Benutzeroberfläche auszuführen. Eine Empfehlung unsererseits: Überzeugen Sie sich einfach selbst von Selenium 4.0.
Wenn Sie weitere Fragen zu Selenium haben oder eine Beratung zur Test Automatisierung wünschen, nehmen Sie unverbindlich Kontakt mit uns auf.
Wir freuen uns, Ihnen bei Fragen weiterhelfen zu können.