Unzählige Stunden verbringen Entwickler damit, die Funktionalität einer Webanwendung sowohl lokal als auch extern zu testen.
Vor Selenium wurde alles buchstäblich von Hand gemacht: Dutzende von Menschen testeten Hunderte von Skripten in allen vorhandenen Browsern, identifizierten Probleme und versuchten, die Ursachen ihres Auftretens zu ermitteln.
Was ist Selenium
Selenium arbeitet mit den meisten Programmiersprachen, die von allen wichtigen Betriebssystemen und Browsern unterstützt werden, und wird derzeit von Unternehmen wie Netflix, Google, HubSpot, Fitbit und anderen verwendet. Die gesamte Suite bietet eine Reihe von Lösungen für verschiedene Testaufgaben und -anforderungen.
Selenium Suit Infrastruktur
WebDriver
Wenn Leute von Selenium sprechen, meinen sie in den meisten Fällen Selenium WebDriver. Der Großteil der Produktentwicklung konzentriert sich auf dieses Element.
Die Testautomatisierung in WebDriver wird oft mit dem Taxifahren verglichen. Beim Taxifahren und Testen sind drei Komponenten beteiligt: Kunde (Testingenieur) – Auto (Browser) – Taxifahrer (WebDriver).
Gemäß dieser Analogie teilt der Programmierer dem Fahrer zunächst mit, wie er mit den Elementen des Browsers interagieren soll. Dann gibt WebDriver dem Browser (Maschine) Befehle, die ungefähr so klingen: Wenn die Schaltfläche aktiv ist, klicken Sie auf die Schaltfläche. Danach versorgt der Browser den Fahrer mit Informationen über die Werte und Zustände der Web-Elemente, die später an das Skript gesendet werden. Einfach ausgedrückt, das Selenium WebDriver-Tool wird verwendet, um Informationen zu sammeln und sicherzustellen, dass die Anwendung ordnungsgemäß funktioniert, dh dass der Fahrer weiß, wie er fährt und wohin er fahren muss.
Selenium-IDE
Dies ist eine Erweiterung für Firefox. Es ist nicht für die Entwicklung konzipiert, es ist leicht zu erlernen und perfekt für Prototyping-Aufgaben.
Das Arbeiten in Selenium IDE erfordert keine Programmierkenntnisse, da das Plugin im Grunde genommen die Aktionen des Ingenieurs im Browser aufzeichnet und wiederholt. Programmierer betrachten es nicht als eigenständiges, vollwertiges Produkt, aber es reicht völlig aus, um mit einfachen Skripten zu arbeiten.
Selengitter
Ermöglicht es Ihnen, parallele Tests auf mehreren Computern und Browsern gleichzeitig auszuführen. Die Hauptfunktion dieses Tools besteht darin, Zeit zu sparen. Wenn Sie beispielsweise 100 Tests ausführen müssen, um vier virtuelle oder physische Maschinen einzurichten, wird Selenium Grid verwendet.

Angesichts der Tatsache, dass Browserskripte im Allgemeinen langsam sind, kann die Verwendung von Leistungstechniken wie parallelem Testen bei diesem Problem helfen. Es kann auch verwendet werden, um dieselbe Anwendung in verschiedenen Browsern parallel zu testen, wenn Firefox auf einem Computer läuft, Chrome auf einem anderen und so weiter. Durch die Kombination verschiedener Versionen von Browsern und Betriebssystemen können unterschiedliche Konfigurationen erstellt werden. Unnötig zu erwähnen, dass Grid beim Einsatz in großen Produktionsumgebungen viermal so viel Zeit spart.
Vorteile
Selenium ist nicht das einzige Testautomatisierungstool auf dem Markt, aber es ist das einzige kostenlose Tool, das mit kostenpflichtigen Produkten konkurrieren kann. Katalon Studio ist eine praktikable Alternative, aber es bietet nicht so viele Sprachen, läuft nicht unter Linux und hat einfach keine Fangemeinde.
Es überrascht nicht, dass selbst größere Unternehmen es nicht eilig haben, auf kostenpflichtige Websites umzusteigen und Tausende von Dollar für das zu verschenken, was Selenium kostenlos tut. Die Zahl der Unternehmen, die mit Selen arbeiten, übersteigt 55.000. Der Marktanteil im Bereich Testen und Automatisieren liegt bei fast 30 %.
Unterstützung für Sprachen, Plattformen, Browser:
- Java
- C#
- PHP
- Rubin
- Perl
- Python
- JavaScript
- Ziel-C
- Haskell
- R
- Windows
- Linux
- Mac
- Android
- iOS
- Google Chrome
- Internet Explorer
- Firefox
- Safari
- Oper
- Microsoft Edge
- HtmlUnitDriver
Nachteile
Der vielleicht einzige wesentliche Nachteil ist, dass Selenium nur in Webanwendungen verwendet werden kann. Dies ist jedoch eher eine Einschränkung, kein Nachteil, da WinAppDriver in Selenium integriert werden kann, um Desktop-Anwendungen zu testen.
Eine kleine Geschichte zum Schluss
Im Jahr 2004 erstellte Jason Huggins ein JavaScript-Framework, das seinen Schöpfer von wiederholten manuellen Tests befreien sollte. Das Produkt, das erwartungsgemäß zuerst JavaScriptTestRunner hieß, konnte Tests direkt im Browser ausführen, Seiteninteraktionen verwalten und sie ohne manuelle Eingabe erneut ausführen. Dieses JavaScript-Tool wurde populär, nachdem Huggins sein volles Potenzial erkannte, es zu Open Source machte und es in Selenium Remote Control umbenannte. Der innovative Teil war, dass bis dahin kein anderes Tool es Testern ermöglichte, mit dem Browser in der Programmiersprache ihrer Wahl zu kommunizieren.
Es stellte sich jedoch bald heraus, dass Browser Sicherheitsbeschränkungen auf JavaScript anwenden, was es unmöglich macht, die volle Leistungsfähigkeit des Tools zu nutzen. Zu dieser Zeit war Google ein begeisterter Benutzer von Selenium und seine Ingenieure versuchten ihr Bestes, um die Einschränkungen zu umgehen. Einer von ihnen, Simon Stewart, begann mit der Arbeit an einem Produkt, das direkt mit Browsern interagiert, und nannte es WebDriver.