Was ist Selenium WebDriver? Unterschied zu RC

Inhaltsverzeichnis:

Anonim

Was ist Selenium Webdriver?

Selenium Webdriver ist eine Open-Source-Sammlung von APIs, die zum Testen von Webanwendungen verwendet wird. Das Selenium Webdriver-Tool wird zum Automatisieren von Webanwendungstests verwendet, um zu überprüfen, ob es wie erwartet funktioniert oder nicht. Es unterstützt hauptsächlich Browser wie Firefox, Chrome, Safari und Internet Explorer. Außerdem können Sie browserübergreifende Tests durchführen.

Mit WebDriver können Sie auch eine Programmiersprache zum Erstellen Ihrer Testskripte verwenden (in Selenium IDE nicht möglich).

Sie können jetzt bedingte Operationen wie if-then-else oder switch-case verwenden. Sie können auch eine Schleife wie do-while ausführen.

Die folgenden Programmiersprachen werden von WebDriver unterstützt

  • Java
  • .Netz
  • PHP
  • Python
  • Perl
  • Rubin

Sie müssen nicht alle kennen. Sie müssen nur in einem kenntnisreich sein. In diesem Tutorial verwenden wir jedoch Java mit Eclipse als IDE.

Unterschied zwischen Selenium RC und Webdriver

Vor dem Aufkommen von WebDriver im Jahr 2006 gab es ein weiteres Automatisierungstool namens Selenium Remote Control. Sowohl WebDriver als auch Selenium RC verfügen über folgende Funktionen:

  • In beiden Fällen können Sie beim Entwerfen Ihrer Testskripte eine Programmiersprache verwenden .
  • Mit beiden können Sie Ihre Tests mit verschiedenen Browsern ausführen.

Wie unterscheiden sie sich? Lassen Sie uns die Antworten diskutieren.

1. Architektur

Die Architektur von WebDriver ist einfacher als die von Selenium RC .

  • Es steuert den Browser von der Betriebssystemebene aus
  • Sie benötigen lediglich die IDE Ihrer Programmiersprache (die Ihre Selenium-Befehle enthält) und einen Browser.
Die Architektur von Selenium RC ist viel komplizierter.
  • Sie müssen zuerst eine separate Anwendung namens Selenium Remote Control (RC) Server starten, bevor Sie mit dem Testen beginnen können
  • Der Selenium RC Server fungiert als "Vermittler" zwischen Ihren Selenium-Befehlen und Ihrem Browser
  • Wenn Sie mit dem Testen beginnen, "injiziert" Selenium RC Server ein Javascript-Programm namens Selenium Core in den Browser.
  • Nach der Injektion erhält Selenium Core Anweisungen, die vom RC Server von Ihrem Testprogramm weitergeleitet werden.
  • Wenn die Anweisungen empfangen werden, führt Selenium Core sie als Javascript-Befehle aus.
  • Der Browser befolgt die Anweisungen von Selenium Core und leitet seine Antwort an den RC-Server weiter.
  • Der RC-Server erhält die Antwort des Browsers und zeigt Ihnen dann die Ergebnisse an.
  • RC Server ruft die nächste Anweisung aus Ihrem Testskript ab, um den gesamten Zyklus zu wiederholen.

2. Geschwindigkeit

WebDriver ist schneller als Selenium RC, da es direkt mit dem Browser spricht und die eigene Engine des Browsers verwendet, um es zu steuern.

Selenium RC ist langsamer, da es ein Javascript-Programm namens Selenium Core verwendet. Dieser Selenium Core steuert direkt den Browser, nicht Sie.

3. Interaktion im wirklichen Leben

WebDriver interagiert realistischer mit Seitenelementen. Wenn Sie beispielsweise ein deaktiviertes Textfeld auf einer Seite haben, die Sie getestet haben, kann WebDriver wirklich keinen Wert eingeben, so wie es eine reale Person nicht kann.

Selenium Core kann wie andere JavaScript-Codes auf deaktivierte Elemente zugreifen. In der Vergangenheit haben sich Selenium-Tester darüber beschwert, dass Selenium Core in ihren Tests Werte in ein deaktiviertes Textfeld eingeben konnte. Unterschiede in der API

4. API

Die API von Selenium RC ist ausgereifter, enthält jedoch Redundanzen und häufig verwirrende Befehle . Zum Beispiel sind Tester die meiste Zeit verwirrt, ob sie type oder typeKeys verwenden sollen. oder ob Sie click, mouseDown oder mouseDownAt verwenden möchten. Schlimmer noch, verschiedene Browser interpretieren jeden dieser Befehle auch unterschiedlich!

Die API von WebDriver ist einfacher als die von Selenium RC . Es enthält keine redundanten und verwirrenden Befehle.

5. Browser-Unterstützung

WebDriver kann den kopflosen HtmlUnit-Browser unterstützen

HtmlUnit wird als "kopflos" bezeichnet, da es sich um einen unsichtbaren Browser handelt - es ist ohne GUI.

Es ist ein sehr schneller Browser, da keine Zeit darauf verwendet wird, auf das Laden von Seitenelementen zu warten. Dies beschleunigt Ihre Testausführungszyklen.

Da es für den Benutzer unsichtbar ist, kann es nur automatisiert gesteuert werden.

Selenium RC kann den kopflosen HtmlUnit-Browser nicht unterstützen. Es benötigt einen echten, sichtbaren Browser, um damit arbeiten zu können.

Einschränkungen von WebDriver

WebDriver kann neue Browser nicht sofort unterstützen

Denken Sie daran, dass WebDriver auf Betriebssystemebene ausgeführt wird. Denken Sie auch daran, dass verschiedene Browser auf unterschiedliche Weise mit dem Betriebssystem kommunizieren. Wenn ein neuer Browser herauskommt, hat er möglicherweise einen anderen Kommunikationsprozess mit dem Betriebssystem als andere Browser. Also, haben Sie dem WebDriver Team ganz einige Zeit in Anspruch Gestalt zu geben , dass neue Verfahren aus , bevor sie es auf dem nächsten WebDriver Release implementieren können.

Es ist jedoch Sache des Entwicklerteams von WebDriver, zu entscheiden, ob sie den neuen Browser unterstützen sollen oder nicht.

Selenium RC verfügt über einen eingebauten Testergebnisgenerator

Selenium RC generiert automatisch eine HTML-Datei mit Testergebnissen . Das Format des Berichts wurde von RC selbst voreingestellt. Schauen Sie sich unten ein Beispiel für diesen Bericht an.

WebDriver verfügt über keinen integrierten Befehl, der automatisch eine Testergebnisdatei generiert . Sie müssten sich auf das Ausgabefenster Ihrer IDE verlassen oder den Bericht mithilfe der Funktionen Ihrer Programmiersprache selbst entwerfen und als Text, HTML usw. speichern.

Zusammenfassung

  • WebDriver ist ein Tool zum Testen von Webanwendungen in verschiedenen Browsern mit verschiedenen Programmiersprachen.
  • Sie können jetzt leistungsstarke Tests durchführen, da Sie mit WebDriver eine Programmiersprache Ihrer Wahl zum Entwerfen Ihrer Tests verwenden können.
  • WebDriver ist aufgrund seiner einfacheren Architektur schneller als Selenium RC .
  • WebDriver kommuniziert direkt mit dem Browser, während Selenium RC dazu die Hilfe des RC-Servers benötigt.
  • Die API von WebDriver ist prägnanter als die von Selenium RC.
  • WebDriver kann HtmlUnit unterstützen, Selenium RC jedoch nicht.
  • Die einzigen Nachteile von WebDriver sind:
    • Es kann nicht ohne weiteres neue Browser unterstützen , Selenium RC jedoch.
    • Es ist kein Befehl zur automatischen Generierung von Testergebnissen integriert.