Was ist Selen? Einführung in das Testen der Selenautomatisierung

Inhaltsverzeichnis:

Anonim

Was ist Selen?

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-Testwerkzeug durchgeführt werden, werden normalerweise als Selenium-Test bezeichnet.

Selenium Software ist nicht nur ein einzelnes Tool, sondern eine Suite von Software, die jeweils unterschiedliche Selenium QA-Testanforderungen eines Unternehmens erfüllt. Hier ist die Liste der Werkzeuge

  • Integrierte Entwicklungsumgebung für Selen (IDE)
  • Selen Fernbedienung (RC)
  • WebDriver
  • Selengitter
Einführung in Selen

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 lernen Sie:

  • Was ist Selen?
  • Wer hat Selen entwickelt?
  • Das gleiche Problem mit der Ursprungsrichtlinie
  • Geburt der Selen-Fernbedienung (Selenium RC)
  • Geburt des Selengitters
  • Geburt von Selen IDE
  • Geburt von WebDriver
  • Geburt von Selen 2
  • Warum also der Name Selen?
  • Kurze Einführung Selen IDE
  • Kurze Einführung Selen Fernbedienung (Selenium RC)
  • Kurze Einführung WebDriver
  • Selengitter
  • Hinweis zur Browser- und Umgebungsunterstützung
  • So wählen Sie das richtige Selenwerkzeug für Ihre Anforderungen aus
  • Ein Vergleich zwischen Selen und QTP (jetzt UFT)
  • Vorteile von QTP gegenüber Selen

Wer hat Selen entwickelt?

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

Selen wurde in erster Linie von Jason Huggins im Jahr 2004 erstellt . Als Ingenieur bei ThoughtWorks arbeitete er an einer Webanwendung, die häufige Tests erforderte. Nachdem er festgestellt 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 " JavaScriptTestRunner ".

Er erkannte das Potenzial dieser Idee, andere Webanwendungen zu automatisieren, und machte JavaScriptRunner zu Open Source, das später in Selenium Core umbenannt wurde .

Das gleiche Problem mit der Ursprungsrichtlinie

Die gleiche Origin-Richtlinie verhindert, dass JavaScript-Code auf Elemente aus einer Domäne zugreift, die sich von dem Ort unterscheidet, an dem sie gestartet wurde . Beispiel: Der HTML-Code in www.google.com verwendet ein JavaScript-Programm "randomScript.js". Mit derselben Ursprungsrichtlinie kann randomScript.js nur auf Seiten in google.com zugreifen, z. B. google.com/mail, google.com/login oder google.com/signup. Es kann jedoch nicht auf Seiten von verschiedenen Websites wie yahoo.com/search oder guru99.com zugreifen, da diese zu verschiedenen Domänen gehören.

Dies ist der Grund, warum Tester vor Selenium RC lokale Kopien sowohl von Selenium Core (einem JavaScript-Programm) als auch des Webservers mit der zu testenden Webanwendung installieren mussten, damit sie zur selben Domäne gehören

Geburt der Selen-Fernbedienung (Selenium RC)

Unglücklicherweise; Tester, die Selenium Core verwenden, mussten die gesamte zu testende Anwendung und den Webserver auf ihren eigenen lokalen Computern installieren, da durch dieselbe Ursprungsrichtlinie Einschränkungen auferlegt wurden . Ein anderer ThoughtWork-Ingenieur, Paul Hammant , entschied sich daher, einen Server zu erstellen, der als HTTP-Proxy fungiert, um den Browser zu "täuschen", dass Selenium Core und die getestete Webanwendung aus derselben Domäne stammen. Dieses System wurde als Selenium Remote Control oder Selenium 1 bekannt .

Geburt des Selengitters

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

Geburt von Selen IDE

Shinya Kasatani aus Japan hat Selenium IDE entwickelt , eine Firefox-Erweiterung, die den Browser über eine Aufnahme- und Wiedergabefunktion automatisieren kann. Er kam auf die Idee, die Geschwindigkeit bei der Erstellung von Testfällen weiter zu erhöhen. Er spendete Selenium IDE auf das Selen - Projekt in 2006 .

Geburt von WebDriver

Simon Stewart WebDriver wurde um 2006 erstellt, 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 Selen 2


Im Jahr 2008 beschloss das gesamte Selenium-Team, WebDriver und Selenium RC zu einem leistungsstärkeren 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 Selen-Projekts konzentrieren sich jetzt auf Selen 2.

Warum also der Name Selen?

Der Name Selenium stammt von einem Witz, den Jason einmal seinem Team erzählt hat. Während der Entwicklung von Selenium wurde ein weiteres automatisiertes Test-Framework von der Firma Mercury Interactive (ja, der Firma, die QTP ursprünglich vor der Übernahme durch HP hergestellt hat) populär gemacht . Da Selen ein bekanntes Gegenmittel gegen Quecksilbervergiftungen ist, schlug Jason diesen Namen vor und seine Teamkollegen nahmen ihn an. So konnten wir diesen Rahmen bis in die Gegenwart aufrufen.

Kurze Einführung Selen IDE

Die integrierte Entwicklungsumgebung für Selenium (IDE) 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.

Kurze Einführung Selen Fernbedienung (Selenium RC)

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

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Rubin

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. WebDriver verwendet im Gegensatz zu Selenium RC kein JavaScript für Selenium Automation Testing. Es steuert den Browser durch direkte Kommunikation mit ihm.

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

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Rubin

Selengitter

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

Eigenschaften:

  • Ermöglicht die gleichzeitige Ausführung von Tests in mehreren Browsern und Umgebungen.
  • Spart enorm Zeit .
  • Verwendet 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 verschiedene Sätze von Browsern und Betriebsumgebungen.

Selen IDE WebDriver
Browser- Unterstützung Mozilla Firefox Internet Explorer-Versionen 6 bis 11, 32- und 64-Bit- Microsoft Edge-Version 12.10240 und höher (teilweise Unterstützung einiger in der Entwicklung befindlicher Funktionen) Firefox 3.0 und höher Google Chrome 12.0. und höher Opera 11.5 und höher Android - 2.3 und höher für Telefone und Tablets (Geräte und Emulatoren) iOS 3+ für Telefone (Geräte und Emulatoren) und 3.2+ für Tablets (Geräte und 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 von SeleniumHQ veraltet und offiziell angekündigt wurde.

So wählen Sie das richtige Selenwerkzeug für Ihre Anforderungen aus

Werkzeug Warum wählen?

Selen IDE

  • Erfahren Sie mehr über Konzepte zu automatisierten Tests und Selen, einschließlich:
  • Selenese-Befehle wie type, open, clickAndWait, assert, verify usw.
  • Locators wie id, name, xpath, css selector usw.
  • Ausführen von angepasstem JavaScript-Code mit runScript
  • Exportieren von Testfällen in verschiedenen Formaten.
  • Erstellen von Tests mit geringen oder keinen Programmierkenntnissen.
  • So erstellen Sie einfache Testfälle und Testsuiten, die Sie später in RC oder WebDriver exportieren können.
  • So testen Sie eine Webanwendung nur gegen Firefox und Chrome.

Selen RC

  • Entwerfen eines Tests in einer ausdrucksstärkeren Sprache als Selenese
  • So führen Sie Ihren Test mit verschiedenen Browsern (außer HtmlUnit) unter verschiedenen Betriebssystemen aus
  • So stellen Sie Ihre Tests mithilfe von Selenium Grid in mehreren Umgebungen bereit
  • So testen Sie Ihre Anwendung mit einem neuen Browser, der JavaScript unterstützt.
  • Testen von Webanwendungen mit komplexen AJAX-basierten Szenarien.

WebDriver

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

Selengitter

  • So führen Sie Ihre Selenium RC-Skripte gleichzeitig in mehreren Browsern und Betriebssystemen aus
  • Um eine riesige Testsuite ausführen zu können, muss diese so schnell wie möglich abgeschlossen sein.

Ein Vergleich zwischen Selen und QTP (jetzt UFT)

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

Vorteile und Nutzen von Selen gegenüber QTP

Selen QTP
Open Source , kostenlos und kostenlos. Kommerziell .
Sehr erweiterbar Begrenzte Add-Ons
Kann Tests in verschiedenen Browsern ausführen Kann nur Tests 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 die Testautomatisierung für mobile Apps (iOS und Android) mithilfe der HP-Lösung HP Mobile Center
Kann Tests ausführen, während der Browser minimiert ist Die zu testende Anwendung muss auf dem Desktop sichtbar sein
Kann Tests parallel ausführen . Kann nur parallel ausgeführt werden, verwendet jedoch das Quality Center, das wiederum ein kostenpflichtiges Produkt ist.

Vorteile von QTP gegenüber Selen

Vorteile von QTP gegenüber Selen
QTP Selen
Kann sowohl Web- als auch Desktopanwendungen testen Kann nur Webanwendungen testen
Kommt mit einem eingebauten Objekt-Repository Hat kein eingebautes Objekt-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 die IDE eines Drittanbieters für die Entwicklung verwendet werden kann
Datengesteuertes Testen ist einfacher durchzuführen, da globale und lokale Datentabellen integriert sind . Datengesteuertes Testen ist umständlicher, da Sie sich auf die Funktionen der Programmiersprache verlassen müssen, um Werte für Ihre Testdaten festzulegen
Zugriff auf Steuerelemente im Browser (z. B. Favoritenleiste, Adressleiste, Schaltflächen Zurück und Weiter usw.) Auf Elemente außerhalb der zu testenden Webanwendung kann nicht zugegriffen werden
Bietet professionelle Kundenbetreuung Es wird keine offizielle Benutzerunterstützung angeboten.
Hat native Fähigkeit, Testdaten in externe Formate zu exportieren Hat keine native Fähigkeit, Laufzeitdaten in externe Formate zu exportieren
Die Parametrierungsunterstützung wird erstellt 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 Selen völlig kostenlos ist)
  • Flexibilität (aufgrund einer Reihe von Programmiersprachen, Browsern und Plattformen, die unterstützt werden können)
  • Parallele Tests (etwas, zu dem QTP in der Lage ist, jedoch nur mit Quality Center)

Zusammenfassung

  • Die gesamte Selenium Software Testing Suite besteht aus vier Komponenten:
  • Selenium IDE, ein Firefox-Add-On, mit dem Sie nur relativ einfache Testfälle und Testsuiten erstellen 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, der neuere Durchbruch, mit dem Ihre Testskripte direkt mit dem Browser kommunizieren und ihn somit von der Betriebssystemebene aus steuern können.
  • Selenium Grid ist auch ein Tool, das mit Selenium RC verwendet wird, um parallele Tests für verschiedene Browser und Betriebssysteme durchzuführen.
  • Selenium RC und WebDriver wurden zu Selenium 2 zusammengeführt.
  • Selen ist hinsichtlich Kosten und Flexibilität vorteilhafter als QTP. Außerdem können Sie Tests parallel ausführen, anders als in QTP, wo Sie Tests nur nacheinander ausführen dürfen.