Articles

Was ist Selen? Einführung in Selenium Automation Testing

Was ist Selenium?

Selenium ist ein kostenloses (Open-Source) automatisiertes Testframework, mit dem Webanwendungen über verschiedene Browser und Plattformen hinweg validiert werden. Sie können mehrere Programmiersprachen wie Java, C #, Python usw. verwenden, um Selenium-Testskripte zu erstellen. Tests, die mit dem Selenium Testing Tool durchgeführt werden, werden normalerweise als Selenium Testing bezeichnet.

Selenium-Software ist nicht nur ein einzelnes Tool, sondern eine Suite von Software, die jeweils auf unterschiedliche Selenium-QA-Testanforderungen einer Organisation zugeschnitten ist. Hier ist die Liste der Tools

  • Selenium Integrated Development Environment (IDE)
  • Selenium Remote Control (RC)
  • WebDriver
  • Selenium Grid

Einführung in Selenium
Einführung in Selenium

Derzeit werden Selenium RC und WebDriver zu einem einzigen Framework zusammengeführt, um Selenium 2 zu bilden. Selen 1 bezieht sich übrigens auf Selen RC.

Klicken Sie hier, wenn das Video nicht zugänglich ist

In diesem Tutorial erfahren Sie:

  • Was ist Selen?
  • Wer hat Selenium entwickelt?
  • Die gleiche Herkunft Politik Ausgabe
  • Geburt von Selenium Fernbedienung (Selen RC)
  • Geburt von Selenium Grid
  • Geburt von Selenium IDE
  • Geburt von WebDriver
  • Geburt von Selenium 2
  • Also, Warum der Name Selenium?
  • Kurze Einführung Selenium IDE
  • Kurze Einführung Selenium Remote Control (Selenium RC)
  • Kurze Einführung WebDriver
  • Selenium Grid
  • Hinweis zur Browser- und Umgebungsunterstützung
  • So wählen Sie das richtige Selenium-Tool für Ihre Anforderungen aus
  • Ein Vergleich zwischen Selenium und QTP(jetzt UFT)
  • Vorteile von QTP gegenüber Selen

Wer Selen entwickelt?

Da Selenium eine Sammlung verschiedener Tools ist, hatte es auch verschiedene Entwickler. Im Folgenden sind die Schlüsselpersonen aufgeführt, die bemerkenswerte Beiträge zum Selenium-Projekt geleistet haben

Einführung in Selen

In erster Linie, Selenium wurde 2004 von Jason Huggins entwickelt. Als Ingenieur bei ThoughtWorks arbeitete er an einer Webanwendung, die häufig getestet werden musste. Nachdem er erkannt hatte, dass das wiederholte manuelle Testen ihrer Anwendung immer ineffizienter wurde, erstellte er ein JavaScript-Programm, das die Aktionen des Browsers automatisch steuert. Er nannte dieses Programm als „JavaScriptTestRunner.“Als er das Potenzial dieser Idee sah, andere Webanwendungen zu automatisieren, machte er JavaScriptRunner zu Open Source, das später in Selenium Core umbenannt wurde.

Das Problem mit der Richtlinie für denselben Ursprung

Die Richtlinie für denselben Ursprung verbietet JavaScript-Code den Zugriff auf Elemente aus einer Domäne, die sich von der Domäne unterscheidet, in der er gestartet wurde. Beispiel, der HTML-Code in www.google.com verwendet ein JavaScript-Programm „randomScript.js“. Die gleiche Ursprungsrichtlinie erlaubt nur randomScript.js für den Zugriff auf Seiten innerhalb google.com wie google.com/mail, google.com/login, oder google.com/signup . Es kann jedoch nicht auf Seiten von verschiedenen Websites zugreifen, z yahoo.com/search oder Guru99.com, weil sie zu verschiedenen Domänen gehören.

Einführung in Selenium

Dies ist der Grund, warum Tester vor Selenium RC lokale Kopien von Selenium Core (einem JavaScript-Programm) und dem Webserver mit der getesteten Webanwendung installieren mussten, damit sie zur selben Domäne gehören

Geburt von Selenium Remote Control (Selenium RC)

Einführung in Selen

Leider; tester, die Selenium Core verwendeten, mussten die gesamte zu testende Anwendung und den Webserver auf ihren eigenen lokalen Computern installieren, da die Richtlinien für denselben Ursprung Einschränkungen auferlegten. Paul Hammant, Ingenieur bei ThoughtWork, beschloss daher, einen Server zu erstellen, der als HTTP-Proxy fungiert, um den Browser so zu „täuschen“, dass er glaubt, dass Selenium Core und die zu testende Webanwendung aus derselben Domäne stammen. Dieses System wurde als Selenium Remote Control oder Selenium 1 bekannt.

Geburt von Selenium Grid

Einführung in Selenium

Selenium Grid wurde von Patrick Lightbody entwickelt, um die Notwendigkeit der Minimierung der Testausführungszeiten so weit wie möglich zu adressieren. Er nannte das System zunächst „Hosted QA.“ Es war in der Lage, Browser-Screenshots in wichtigen Phasen zu erfassen und Selenium-Befehle gleichzeitig an verschiedene Computer zu senden.

Geburt von Selenium IDE

Einführung in Selenium

Shinya Kasatani aus Japan hat Selenium IDE entwickelt, eine Firefox-Erweiterung, die den Browser durch eine Aufnahme- und Wiedergabefunktion automatisieren kann. Er kam auf diese Idee, um die Geschwindigkeit bei der Erstellung von Testfällen weiter zu erhöhen. 2006 spendete er Selenium IDE an das Selenium Project.

Geburt von WebDriver

Einführung in Selenium Simon Stewart schuf WebDriver um 2006, als Browser und Webanwendungen mit JavaScript-Programmen wie Selenium Core leistungsfähiger und restriktiver wurden. Es war das erste plattformübergreifende Testframework, das den Browser von der Betriebssystemebene aus steuern konnte.

Geburt von Selenium 2

Im Jahr 2008 beschloss das gesamte Selenium-Team, WebDriver und Selenium RC zu einem leistungsfähigeren Tool namens Selenium 2 zusammenzuführen, wobei WebDriver der Kern ist. Derzeit wird Selenium RC noch entwickelt, jedoch nur im Wartungsmodus. Die meisten Bemühungen des Selenium-Projekts konzentrieren sich jetzt auf Selenium 2.

Also, warum der Name Selenium?

Der Name Selenium stammt von einem Witz, den Jason seinem Team einmal geknackt hat. Während der Entwicklung von Selenium wurde ein weiteres automatisiertes Testframework von der Firma Mercury Interactive entwickelt (ja, die Firma, die ursprünglich QTP gemacht hat, bevor es von HP übernommen wurde). Da Selen ein bekanntes Gegenmittel gegen Quecksilbervergiftung ist, schlug Jason vor, dass er und seine Teamkollegen es nahmen. So haben wir diesen Rahmen bis heute genannt.

Herkunft des Namens des Selenium-Frameworks

Kurze Einführung Selenium IDE

Die integrierte Entwicklungsumgebung (IDE) von Selenium ist das einfachste Framework in der Selenium-Suite und am einfachsten zu erlernen. Es ist ein Firefox-Plugin, das Sie so einfach wie möglich mit anderen Plugins installieren können. Aufgrund seiner Einfachheit sollte Selenium IDE jedoch nur als Prototyping-Tool verwendet werden. Wenn Sie erweiterte Testfälle erstellen möchten, müssen Sie entweder Selenium RC oder WebDriver verwenden.

Vor- und Nachteile von Selenium IDE

Kurze Einführung Selenium Remote Control (Selenium RC)

Selenium RC war lange Zeit das Flaggschiff-Testframework des gesamten Selenium-Projekts. Dies ist das erste automatisierte Webtest-Tool, mit dem Benutzer eine von ihnen bevorzugte Programmiersprache verwenden konnten. Ab Version 2.25.0 kann RC die folgenden Programmiersprachen unterstützen:

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

Vor- und Nachteile von Selenium RC

Kurze Einführung WebDriver

Der WebDriver erweist sich in vielerlei Hinsicht als besser als Selenium IDE und Selenium RC. Es implementiert einen moderneren und stabileren Ansatz zur Automatisierung der Aktionen des Browsers. Im Gegensatz zu Selenium RC ist WebDriver für Selenium-Automatisierungstests nicht auf JavaScript angewiesen. 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

Vor- und Nachteile von Selenium Webdriver

Selenium Grid

Selenium Grid ist ein Tool, das zusammen mit Selenium RC verwendet wird, um parallele Tests auf verschiedenen Computern und verschiedenen Browsern gleichzeitig auszuführen. Parallele Ausführung bedeutet, mehrere Tests gleichzeitig auszuführen.

Eigenschaften:

  • Ermöglicht die gleichzeitige Ausführung von Tests in mehreren Browsern und Umgebungen.
  • Spart enorm Zeit.
  • Nutzt das Hub-and-Nodes-Konzept. Der Hub fungiert als zentrale Quelle für Selenium-Befehle für jeden mit ihm verbundenen Knoten.

Hinweis zur Browser- und Umgebungsunterstützung

Aufgrund ihrer architektonischen Unterschiede unterstützen Selenium IDE, Selenium RC und WebDriver unterschiedliche Browser- und Betriebsumgebungen.

Selenium IDE WebDriver
Browser Support Mozilla Firefox Internet Explorer versions 6 to 11, both 32 and 64-bit
Microsoft Edge version 12.10240 & above ( partial support some functionalities under development)
Firefox 3.0 and above
Google Chrome 12.0. and above
Opera 11.5 and above
Android – 2.3 und höher für Telefone und Tablets
(Geräte & Emulatoren)
iOS 3+ für Telefone (Geräte & Emulatoren) und 3.2+ für Tablets (Geräte & Emulatoren)
HtmlUnit 2.9 und höher
Betriebssystem Windows, Mac OS X, Linux Alle Betriebssysteme, auf denen die oben genannten Browser ausgeführt werden können.

Hinweis: Selenium WebDriver wird als Nachfolger von Selenium RC bezeichnet, das veraltet ist & offiziell von SeleniumHQ angekündigt.

So wählen Sie das richtige Selenium-Tool für Ihre Anforderungen aus

Werkzeug
Warum Wählen?

Selenium IDE

  • To learn about concepts on automated testing and Selenium, including:
  • Selenese commands such as type, open, clickAndWait, assert, verify, etc.
  • Locators such as id, name, xpath, css selector, etc.
  • Executing customized JavaScript code using runScript
  • Exporting test cases in various formats.
  • Um Tests mit wenig oder gar keinen Programmierkenntnissen zu erstellen.
  • Zum Erstellen einfacher Testfälle und Testsuiten, die Sie später nach RC oder WebDriver exportieren können.
  • Um eine Webanwendung nur mit Firefox und Chrome zu testen.

Selenium RC

  • Um einen Test mit einer ausdrucksstärkeren Sprache als Selenese zu entwerfen
  • Um Ihren Test mit verschiedenen Browsern (außer HtmlUnit) auf verschiedenen Betriebssystemen auszuführen.
  • Um Ihre Tests mit Selenium Grid in mehreren Umgebungen bereitzustellen.
  • Um Ihre Anwendung mit einem neuen Browser zu testen, der JavaScript unterstützt.
  • Zum Testen von Webanwendungen mit komplexen AJAX-basierten Szenarien.

WebDriver

  • , Um eine bestimmte Programmiersprache beim Entwerfen Ihres Testfalls zu verwenden.
  • Zum Testen von Anwendungen, die reich an AJAX-basierten Funktionen sind.
  • Zum Ausführen von Tests im HtmlUnit-Browser.
  • , um benutzerdefinierte Testergebnisse zu erstellen.

Selenium Grid

  • Zum gleichzeitigen Ausführen Ihrer Selenium RC-Skripte in mehreren Browsern und Betriebssystemen.
  • Um eine riesige Testsuite auszuführen, die in kürzester Zeit abgeschlossen werden muss.

Ein Vergleich zwischen Selenium und QTP(jetzt UFT)

Quick Test Professional(QTP) ist ein proprietäres automatisiertes Testwerkzeug, das zuvor der Firma Mercury Interactive gehörte, bevor es 2006 von Hewlett-Packard übernommen wurde. Die Selenium Tool Suite hat viele Vorteile gegenüber QTP, wie unten beschrieben –

Vorteile und Nutzen von Selenium gegenüber QTP

Selen
QTP
Open Source, kostenlos und kostenlos. Kommerziell.
Sehr erweiterbar Begrenzte Add-ons
Kann Tests in verschiedenen Browsern ausführen Kann Tests nur in Firefox, Internet Explorer und Chrome ausführen
Unterstützt verschiedene Betriebssysteme Kann nur in Windows verwendet werden
Unterstützt mobile Geräte QTP Unterstützt Mobile testautomatisierung (iOS & Android) mit HP Lösung namens – HP Mobile Center
Kann Tests ausführen, während der Browser minimiert ist Muss die Anwendung unter test auf dem Desktop sichtbar sein
Kann Tests parallel ausführen. Kann nur parallel ausgeführt werden, jedoch mit Quality Center, das wiederum ein kostenpflichtiges Produkt ist.

Advantages of QTP over Selenium

Advantages of QTP over Selenium
QTP
Selenium
Can test both web and desktop applications Can only test web applications
Comes with a built-in object repository Has no built-in object repository
Automatisiert schneller als Selenium, da es sich um eine voll funktionsfähige IDE handelt. Automatisiert langsamer, da keine native IDE vorhanden ist und nur IDE von Drittanbietern für die Entwicklung verwendet werden kann
Datengesteuerte Tests sind einfacher durchzuführen, da sie über integrierte globale und lokale Datentabellen verfügen. Datengesteuertes Testen ist umständlicher, da Sie sich auf die Fähigkeiten der Programmiersprache verlassen müssen, um Werte für Ihre Testdaten festzulegen
Kann auf Steuerelemente innerhalb des Browsers zugreifen (z. B. die Favoritenleiste, die Adressleiste, die Schaltflächen Zurück und Vorwärts usw.) Kann nicht auf Elemente außerhalb der zu testenden Webanwendung zugreifen
Bietet professionellen Kundensupport Es wird kein offizieller Benutzersupport angeboten.
Hat native Fähigkeit, Testdaten in externe Formate zu exportieren Hat keine native Fähigkeit, Laufzeitdaten in externe Formate zu exportieren
Parametrierunterstützung ist eingebaut Die Parametrierung kann über die Programmierung erfolgen, ist jedoch schwierig zu implementieren.
Testberichte werden automatisch generiert Keine native Unterstützung zum Generieren von Test- /Fehlerberichten.

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

  • Kosten (weil Selenium völlig kostenlos ist)
  • Flexibilität(wegen einer Reihe von Programmiersprachen, Browsern und Plattformen, die es unterstützen kann)
  • Paralleles Testen(etwas, zu dem QTP in der Lage ist, aber nur mit Quality Center)

Zusammenfassung

  • Die gesamte Selenium Software Testing Suite besteht aus vier Komponenten:
  • Selenium IDE, ein Firefox-Add-On, das Sie nur zum Erstellen relativ einfacher Testfälle und Testsuiten verwenden können.
  • Selenium Remote Control, auch bekannt als Selenium 1, ist das erste Selenium-Tool, mit dem Benutzer Programmiersprachen zum Erstellen komplexer Tests verwenden konnten.
  • WebDriver, die neuere Version, mit der Ihre Testskripte direkt mit dem Browser kommunizieren und ihn so von der Betriebssystemebene aus steuern können.
  • Selenium Grid ist auch ein Tool, das mit Selenium RC verwendet wird, um parallele Tests in verschiedenen Browsern und Betriebssystemen auszuführen.
  • Selenium RC und WebDriver wurden zu Selenium 2 zusammengeführt.
  • Selenium ist in Bezug auf Kosten und Flexibilität vorteilhafter als QTP. Außerdem können Sie Tests parallel ausführen, im Gegensatz zu QTP, bei dem Sie Tests nur nacheinander ausführen dürfen.