Was ist Selenium? Einführungstutorial

Was ist Selenium?

Selenium ist ein kostenloses (Open-Source) Framework für automatisierte Tests, mit dem Webanwendungen in verschiedenen Browsern und auf verschiedenen Plattformen validiert werden können. Sie können mehrere Programmiersprachen verwenden, wie Java, C#, Python, usw. zu erstellen Selenium Testskripte. Der Test wurde mit dem durchgeführt Selenium Testtool wird üblicherweise als bezeichnet Selenium Testen.

Was ist Selen?

Experteneinblicke

Vermeiden Sie feste Ruhezeiten in Ihren Tests. Verwenden Sie stattdessen explizite Wartezeiten (wie WebDriverWait), um auf das Laden von Elementen zu warten. Dadurch werden Ihre Skripte zuverlässiger und schneller, da sie dynamisch auf die tatsächlichen Seitenbedingungen reagieren – eine wichtige Best Practice für Studierende weltweit, beginnend mit Selenium"

— Himanshu Sheth, Selenium Experten

Selenium Tool-Suite

Selenium Bei Software handelt es sich nicht nur um ein einzelnes Tool, sondern um eine Suite von Software, die jeweils unterschiedliche Aufgaben erfüllt Selenium QA-Testanforderungen einer Organisation. Hier ist die Liste der Tools

  • Selenium Integrierte Entwicklungsumgebung (IDE)
  • Selenium Fernbedienung (RC)
  • WebTreiber
  • Selenium Gitter

Selenium Tool-Suite

In dem Moment, Selenium RC und WebDriver werden zu einem einzigen Framework zusammengeführt Selenium 2. Selenium 1 bezieht sich übrigens auf Selenium RC.

Video Tutorial Selenium

Klicke hier wenn das Video nicht zugänglich ist

Wer hat entwickelt? Selenium?

Da Selenium ist eine Sammlung verschiedener Tools, es gab auch verschiedene Entwickler. Nachfolgend sind die Schlüsselpersonen aufgeführt, die bemerkenswerte Beiträge dazu geleistet haben Selenium Projekt

Wir entwickelten Selenium

In erster Linie, Selenium wurde 2004 von Jason Huggins erstellt. Als Ingenieur bei ThoughtWorks arbeitete er an einer Webanwendung, die häufige Tests erforderte. Als er erkannte, dass die wiederholten manuellen Tests ihrer Anwendung immer ineffizienter wurden, erstellte er eine JavaSkript Programm, das die Aktionen des Browsers automatisch steuert. Er nannte dieses Programm „JavaSkriptTestRunner"

Da er das Potenzial dieser Idee zur Automatisierung anderer Webanwendungen erkannte, JavaScriptRunner Open-Source, das später umbenannt wurde Selenium Core. Wenn Sie andere Möglichkeiten zum Testen von Webanwendungen erkunden möchten, werfen Sie einen Blick auf diese Selenium Alternativen.

Das Problem mit der Same-Origin-Richtlinie

Die Same Origin-Richtlinie verbietet JavaSkriptcode greift auf Elemente aus einer anderen Domäne zu als der, in der er gestartet wurde. Beispielsweise verwendet der HTML-Code in www.google.com eine JavaSkriptprogramm „randomScript.js“. Die Same-Origin-Policy erlaubt randomScript.js nur den Zugriff auf Seiten innerhalb von google.com wie google.com/mail, google.com/login oder google.com/signup. Es kann jedoch nicht auf Seiten von anderen Sites wie yahoo.com/search oder guru99.com zugreifen, da diese zu unterschiedlichen Domänen gehören.

Das Problem mit der Same-Origin-Richtlinie

Dies ist der Grund, warum vor Selenium RC, Tester mussten lokale Kopien von beiden installieren Selenium Kern (ein JavaSkriptprogramm) und der Webserver, auf dem sich die zu testende Webanwendung befindet, sodass sie zur selben Domäne gehören

Geburt von Selenium Fernbedienung (Selenium RC)

widerspricht

Bedauerlicherweise; Tester verwenden Selenium Core musste die gesamte zu testende Anwendung und den Webserver aufgrund der durch das System auferlegten Einschränkungen auf seinen eigenen lokalen Computern installieren Gleiche Herkunftspolitik. Also ein anderer Ingenieur von ThoughtWork, widerspricht, beschlossen, einen Server zu erstellen, der als HTTP-Proxy fungiert, um den Browser dazu zu „täuschen“, dies zu glauben Selenium Der Kern und die getestete Webanwendung stammen aus derselben Domäne. Dieses System wurde als bekannt Selenium Fernwartung or Selenium 1.

Geburt von Selenium Gitter

Patrick Lightbody

Selenium Grid wurde entwickelt von Patrick Lightbody um der Notwendigkeit gerecht zu werden, die Testausführungszeiten so weit wie möglich zu minimieren. Er nannte das System zunächst „Gehostete Qualitätssicherung.“ Es war in der Lage, Browser-Screenshots während wichtiger Phasen und auch von zu erfassen Aussendung Selenium Befehle gleichzeitig an verschiedene Maschinen senden.

Geburt von Selenium IDE

widerspricht

widerspricht von Japan geschaffen Selenium IDE herunter ,ein Firefox und Chrome-Erweiterung, die den Browser durch eine Aufnahme- und Wiedergabefunktion automatisieren kann. Er kam auf die Idee, die Geschwindigkeit bei der Erstellung von Testfällen weiter zu erhöhen. Er hat gespendet Selenium IDE zum Selenium Projekt in 2006.

Geburt von WebDriver

Simon Stewart

Simon Stewart WebDriver ca. erstellt 2006 als Browser und Webanwendungen immer leistungsfähiger und restriktiver wurden mit JavaSkriptprogramme wie Selenium Ader. Es war das erste plattformübergreifende Testframework, das den Browser von der Betriebssystemebene aus steuern konnte.

Geburt von Selenium 2

In 2008, das Ganze Selenium Das Team hat beschlossen, WebDriver und zusammenzuführen Selenium RC soll ein leistungsfähigeres Werkzeug namens bilden Selenium 2, mit WebDriver ist der Kern. Zur Zeit, Selenium RC befindet sich noch in der Entwicklung, jedoch nur im Wartungsmodus. Die meisten von den Selenium Die Bemühungen des Projekts konzentrieren sich nun auf Selenium 2.

Warum also der Name? Selenium?

Der Name Selenium entstand aus einem Witz, den Jason seinem Team einmal erzählte. Während Selenium's Entwicklung, eine andere automatisierte Tests Das Framework wurde von der Firma mit dem Namen „Popular“ hergestellt Mercury Interaktives Benutzererlebnis (Ja, das Unternehmen, das QTP ursprünglich hergestellt hat, bevor es von HP übernommen wurde). Seit Selenium ist ein bekanntes Gegenmittel für Mercury Vergiftung, Jason schlug diesen Namen vor und seine Teamkollegen nahmen ihn an. So kam es, dass wir dieses Framework bis heute so nennen.

Warum der Name Selenium

Was ist Selenium IDE?

Selenium Integrierte Entwicklungsumgebung (IDE) ist die einfachstes Framework in England, Selenium Suite und ist am einfachsten zu erlernen. Es ist ein Chrome und Firefox Plugin dass Sie es genauso einfach installieren können wie andere Plugins. Aufgrund seiner Einfachheit ist es jedoch Selenium IDE sollte nur als verwendet werden Prototyping-Tool. Wenn Sie fortgeschrittenere Testfälle erstellen möchten, müssen Sie beides verwenden Selenium RC oder WebDriver.

Selenium IDE

Was ist Selenium Fernbedienung (Selenium RC)?

Selenium RC war der Flaggschiff-Test-Framework des ganzen Selenium Projekt schon lange. Dies ist die erste automatisierte Webtests Werkzeug das ermöglicht es Benutzern, eine Programmiersprache zu verwenden, die sie bevorzugenAb Version 2.25.0 kann RC die folgenden Programmiersprachen unterstützen:

Selenium Fernbedienung (Selenium RC)

Was ist WebDriver?

Der WebDriver erweist sich als besser als Selenium IDE und Selenium RC in vielerlei Hinsicht. Es implementiert einen moderneren und stabileren Ansatz zur Automatisierung der Browseraktionen. Im Gegensatz zu WebDriver Selenium RC verlässt sich nicht auf JavaSkript für Selenium Automatisierungstests. Es steuert den Browser, indem es direkt mit ihm kommuniziert.

Die unterstützten Sprachen sind die gleichen wie in Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

Webtreiber

Was ist Selenium Netz?

Selenium Grid ist ein Werkzeug zusammen verwendet mit Selenium RC zum Laufen parallele Tests auf verschiedenen Computern und in verschiedenen Browsern gleichzeitig. Parallele Ausführung bedeutet, dass mehrere Tests gleichzeitig ausgeführt werden.

Merkmale:

  • Aktiviert Gleichzeitige Durchführung von Tests in mehrere Browser und Umgebungen.
  • Spart Zeit enorm.
  • Verwendet die Hub-and-Nodes Konzept. Der Hub fungiert als zentrale Quelle für Selenium Befehle an jeden damit verbundenen Knoten.

Selenium Browser- und Umgebungsunterstützung

Aufgrund ihrer architektonischen Unterschiede Selenium SDI, Selenium RC und WebDriver unterstützen unterschiedliche Browser und Betriebssystemumgebungen.

  Selenium IDE WebTreiber
Browser-Unterstützung Mozilla Firefox und Chrome

Google Chrome 12+

Firefox

Internet Explorer 7+ und Edge

Safari, 

HtmlUnit und PhantomUnit

Betriebssystem Windows, Mac OS X, Linux Alle Betriebssysteme, auf denen die oben genannten Browser ausgeführt werden können.

Hinweis: Opera Treiber funktioniert nicht mehr

So wählen Sie das Richtige Selenium Werkzeug für Ihren Bedarf

Werkzeug Warum wählen?
Selenium IDE
  • Erfahren Sie mehr über Konzepte zum automatisierten Testen und Seleniumdarunter:
  • Selenese-Befehle wie „Typ“, „Öffnen“, „ClickAndWait“, „Assert“, „Verifizieren“ usw.
  • Locators wie ID, Name, XPath, CSS-Selektor usw.
  • Durchführen von benutzerdefinierten JavaSkriptcode mit runScript
  • Testfälle in verschiedene Formate exportieren.
  • Tests mit geringen oder keinen Vorkenntnissen in der Programmierung erstellen.
  • Zum Erstellen einfacher Testfälle und Test-Suiten, die Sie später nach RC oder WebDriver exportieren können.
  • Um eine Webanwendung dagegen zu testen Firefox und nur Chrome.
Selenium RC
  • Einen Test mit einer ausdrucksstärkeren Sprache als Selenese entwerfen
  • Um Ihren Test mit verschiedenen Browsern (außer HtmlUnit) auf verschiedenen Betriebssystemen auszuführen.
  • Um Ihre Tests in mehreren Umgebungen bereitzustellen, verwenden Sie Selenium Gitter
  • Um Ihre Anwendung mit einem neuen Browser zu testen, der dies unterstützt JavaSkript.
  • Zum Testen von Webanwendungen mit komplexen AJAX-basierten Szenarien.
WebTreiber
  • Um eine bestimmte Programmiersprache beim Entwerfen Ihres Testfalls zu verwenden.
  • Zum Testen von Anwendungen, die reich an AJAX-basierten Funktionalitäten sind.
  • Um Tests im HtmlUnit-Browser auszuführen.
  • Um individuelle Testergebnisse zu erstellen.
Selenium Gitter
  • Um deine Selenium RC-Skripte in mehreren Browsern und Betriebssystemen gleichzeitig.
  • Um eine riesige Testsuite auszuführen, muss diese so schnell wie möglich abgeschlossen sein.

Ein Vergleich zwischen Selenium und QTP (jetzt UFT)

Quick Test Professional (QTP) ist ein proprietäres automatisiertes Testtool, das zuvor dem Unternehmen gehörte Mercury Interaktives Benutzererlebnis bevor Hewlett-Packard es erwarb im Jahr 2006 angegeben. Späterer Eigentümer ist MicroFocus und das Tool wird in UFT one umbenannt. Selenium Tool Suite hat viele Vorteile gegenüber  QTP wie unten detailliert -

Vorteile und Nutzen von Selenium über QTP

Selenium QTP
Open Source, frei zu benutzenund kostenlos. Gewerblich.
Sehr erweiterbar Begrenzte Add-ons
Kann Tests übergreifend ausführen verschiedene Browser Es können nur Tests ausgeführt werden Firefox, Internet Explorer und Chrome
Unterstützt verschiedene Betriebssysteme Kann nur in verwendet werden Windows
Unterstützt mobile Geräte QTP unterstützt die Testautomatisierung mobiler Apps (iOS & Android) mit der HP-Lösung „HP Mobile Center“.
Kann Tests durchführen während die Der Browser wird minimiert Die zu testende Anwendung muss auf dem Desktop sichtbar sein
Kann Tests durchführen Parallel. Kann nur parallel ausgeführt werden, jedoch mit Quality Center, das wiederum ein kostenpflichtiges Produkt ist.

Fallstudien aus der realen Welt

🔍 Fallstudie 1: Cross-Browser-Kompatibilität für SaaS-Dashboards

Szenario

Ein Software-as-a-Service-Unternehmen bereitete die Veröffentlichung eines Analyse-Dashboards vor, das in allen modernen Browsern (Chrome, Firefox, Edge, Safari).

Herausforderung

Das manuelle Testen jedes einzelnen Browsers war zeitaufwändig, fehleranfällig und konnte mit den schnellen Entwicklungsiterationen nicht Schritt halten.

Lösung mit Selenium

Ein QA-Ingenieur erstellte eine Selenium Gitter Setup, um die gleiche Testsuite gleichzeitig in mehreren Browsern und Betriebssystemkombinationen auszuführen. Die Tests wurden in Python mit automatisierten Selenium WebDriver für Aktionen wie Anmelden, Diagrammfilterung und Datenexport.

Ergebnis

  • Regressionsdauer um 80 % reduziert.
  • Browserspezifische Rendering-Fehler wurden frühzeitig entdeckt (z. B. falsch ausgerichtete Grafiken im Internet Explorer).
  • Aufrechterhaltung einer konsistenten Dashboard-UX über die gesamte Browsermatrix hinweg ohne zusätzliche manuelle Zyklen.

⚙️ Fallstudie 2: CI/CD-Integration für Web-App über Selenium + TestNG

Szenario

Ein mittelgroßes Webentwicklungsunternehmen setzt auf eine CI/CD-Pipeline mit Jenkins. Es musste sicherstellen, dass die zentralen Benutzerführungen nach jeder Codeänderung funktionierten.

Herausforderung

Bei der Bereitstellung neuer Builds kam es gelegentlich zu Unterbrechungen der Benutzerabläufe (Anmeldung, Formularübermittlung) und deren Erkennung bis zum manuellen Test am Ende des Tages.

Lösung mit Selenium

Ein Tester implementierte eine Java-Basis Selenium WebDriver-Suite integriert mit TestNGDie Tests umfassten Authentifizierung, Profilaktualisierungen und Suchfunktionen. Diese wurden auf jedem Jenkins-Build ausgeführt und nutzten parallele Ausführung und Browserparametrisierung.

Ergebnis

  • Fail-Fast-Feedback erreicht: Unterbrochene Flows wurden sofort gekennzeichnet.
  • Reduzierung der Fehler nach der Bereitstellung um über 60 %.
  • Ermöglichte es Entwicklern, Probleme zu beheben, bevor sie die Qualitätssicherung erreichten.

🚀 Fallstudie 3: Beschleunigung der Funktionsfreigabe für Reiseaggregator

Szenario

Eine Reise-Aggregator-Plattform musste eine überarbeitete Flugbuchungsfunktion veröffentlichen. Manuelle Regressionstests auf über zehn Seiten dauerten Tage und blockierten die Veröffentlichung.

Herausforderung

Der Druck, die Markteinführungszeit zu verkürzen, konnte manuelle Testzyklen nicht übertreffen, was zu Verzögerungen oder einer geringeren Qualität führen würde.

Lösung mit Selenium & Seitenobjektmodell

Ein Leiter der QA-Automatisierung hat eine Page Object Model (POM)-Struktur in C# eingeführt. Selenium WebDriver-Skripte kapselten Seitenelemente und Aktionen (Flüge suchen, Filter anwenden, Zahlungsfälle). Automatisierte Testläufe wurden jede Nacht auf GitLab CI ausgelöst.

Ergebnis

  • Die Testzeit sank von 3 Tagen auf nur 4 Stunden.
  • Durch die Wiederverwendung von Skripten für mehrere Funktionen wird der Skripting-Aufwand um 50 % reduziert.
  • Das Vertrauen stieg: Die Version wurde planmäßig und mit minimalen Fehlerberichten ausgeliefert.

Vorteile von QTP gegenüber Selenium

QTP Selenium
Kann testen sowohl Web- als auch Desktop-Anwendungen Kann nur Webanwendungen testen
Kommt mit einem Integriertes Objekt-Repository Verfügt über kein integriertes Objekt-Repository
Automatisiert schneller als Selenium weil es eine voll ausgestattete IDE ist. Die Automatisierung erfolgt langsamer, da keine native IDE vorhanden ist und nur IDEs von Drittanbietern für die Entwicklung verwendet werden können.
Datengesteuerte Tests sind einfacher durchzuführen, weil Es verfügt über integrierte globale und lokale Datentabellen. Datengesteuertes Testen ist umständlicher, da Sie sich beim Festlegen von Werten für Ihre Testdaten auf die Fähigkeiten der Programmiersprache verlassen müssen
Kann auf Steuerelemente im Browser zugreifen(z. B. die Favoritenleiste, die Adressleiste, die Schaltflächen „Zurück“ und „Weiter“ usw.) Auf Elemente außerhalb der zu testenden Webanwendung kann nicht zugegriffen werden
Bietet professionell Kunden-Support Es wird kein offizieller Benutzersupport angeboten.
Verfügt über native Fähigkeiten dazu Testdaten exportieren in externe Formate Verfügt über keine native Funktion zum Exportieren von Laufzeitdaten in externe Formate
Parametrisierungsunterstützung ist aufgebaut Die Parametrierung kann per Programmierung erfolgen, ist jedoch schwierig umzusetzen.
Testberichte werden automatisch generiert Keine native Unterstützung zum Generieren von Test-/Fehlerberichten.

Obwohl QTP eindeutig über erweiterte Funktionen verfügt, Selenium übertrifft QTP in drei Hauptbereichen:

  • Kosten(da Selenium ist völlig kostenlos)
  • Flexibilität(aufgrund einer Reihe von Programmiersprachen, Browsern und Plattformen, die unterstützt werden können)
  • Paralleles Testen(etwas, wozu QTP in der Lage ist, aber nur unter Verwendung von Quality Center)

Zusammenfassung

  • Die gesamte Selenium Die Software Testing Suite besteht aus vier Komponenten:
  • Selenium Idee Firefox und Chrome-Add-on, das Sie nur zum Erstellen relativ einfacher Testfälle und Testsuiten verwenden können.
  • Selenium Fernbedienung, auch bekannt als Selenium 1, ist die erste Selenium Tool, das es Benutzern ermöglichte, Programmiersprachen zum Erstellen komplexer Tests zu verwenden.
  • WebDriver ist der neuere Durchbruch, der es Ihren Testskripten ermöglicht, direkt mit dem Browser zu kommunizieren und ihn so von der Betriebssystemebene aus zu steuern.
  • Selenium Grid ist auch ein Werkzeug, das mit verwendet wird Selenium RC zum Ausführen paralleler Tests in verschiedenen Browsern und Betriebssystemen.
  • Selenium RC und WebDriver wurden zusammengeführt Selenium 2.
  • Selenium ist hinsichtlich Kosten und Flexibilität vorteilhafter als Microfocus UFT One.