Selenium Headless Browser Testing: HTMLUnitDriver & PhantomJS

Inhaltsverzeichnis:

Anonim

Der Selenium Web-Treiber ist ein Web-Automatisierungstool, mit dem Sie die Tests für verschiedene Browser ausführen können. Diese Browser können Internet Explorer, Firefox oder Chrome sein. Um einen bestimmten Browser mit Selenium verwenden zu können, benötigen Sie einen entsprechenden Treiber.

Beim Testlauf startet Selenium den entsprechenden im Skript aufgerufenen Browser und führt Testschritte aus. Sie können den Browser und die Testausführung in Aktion sehen.

Was ist ein kopfloser Browser?

Ein Headless-Browser ist ein Webbrowser ohne grafische Benutzeroberfläche . Dieses Programm verhält sich wie ein Browser, zeigt jedoch keine GUI an.

Einige Beispiele für kopflose Treiber sind:

  • HtmlUnit
  • Geist
  • PhantomJS
  • ZombieJS
  • Watir-Webdriver

In diesem Tutorial konzentrieren wir uns auf HtmlUnit und PhatomJS

HTMLUnitDriver

HTML UnitDriver ist der leichteste und am schnellsten implementierbare Headless-Browser für WebDriver. Es basiert auf HtmlUnit. Es ist als Headless Browser Driver bekannt . Es ist dasselbe wie der Chrome-, IE- oder FireFox-Treiber, verfügt jedoch nicht über eine grafische Benutzeroberfläche, sodass die Testausführung nicht auf dem Bildschirm angezeigt wird.

Funktionen des HTML-Einheitentreibers

  • Unterstützung für die Protokolle HTTPS und HTTP
  • Unterstützung für HTML-Antworten (Klicken auf Links, Senden von Formularen, Durchlaufen des DOM-Modells des HTML-Dokuments usw.)
  • Unterstützung für Cookies
  • Unterstützung für Proxyserver
  • Unterstützung für Basis- und NTLM-Authentifizierung
  • Hervorragende JavaScript-Unterstützung
  • Unterstützung für Übermittlungsmethoden GET und POST
  • Möglichkeit zum Anpassen der an den Server gesendeten Anforderungsheader
  • Möglichkeit zu bestimmen, ob fehlgeschlagene Antworten vom Server Ausnahmen auslösen oder als Seiten des entsprechenden Typs zurückgegeben werden sollen

Schritte zur Verwendung des HTMLUnit-Treibers mit Selen

Schritt 1) Kopieren Sie in Eclipse den folgenden Code. Fügen Sie dem Projekt die Standarddateien der Selenbibliothek hinzu. Es sind keine zusätzlichen JAR-Dateien erforderlich.

Paket htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;öffentliche Klasse htmlUnitYest {public static void main (String [] args) {// Neue Instanz des HTML-Unit-Treibers erstellenWebDriver-Treiber = neuer HtmlUnitDriver ();// Zu Google navigierendriver.get ("http://www.google.com");// Suchen Sie das Suchfeld anhand seines NamensWebElement element = driver.findElement (By.name ("q"));// Suchabfrage eingebenelement.sendKeys ("Guru99");// Senden Sie die Abfrage. Webdriver sucht automatisch über das Texteingabeelement nach dem Formular// Der Submit-Button muss nicht gefunden werdenelement.submit ();// Dieser Code druckt den SeitentitelSystem. out .println ("Seitentitel ist: + driver.getTitle ());driver.quit ();}}}}

Schritt 2) Führen Sie den Code aus. Sie werden feststellen, dass kein Browser gestartet wird und die Ergebnisse in der Konsole angezeigt werden.

Vorteile des HTML-Unit-Treibers:

  • Da zum Testen keine grafische Benutzeroberfläche verwendet wird, werden Ihre Tests ohne visuelle Unterbrechung im Hintergrund ausgeführt
  • Im Vergleich zu allen anderen Instanzen ist die Ausführung schneller
  • Um Ihre Tests über den HtmlUnit-Treiber auszuführen, können Sie auch andere Browserversionen auswählen
  • Es ist plattformunabhängig und einfacher, mehrere Tests gleichzeitig auszuführen. Ideal für Lasttests.

Einschränkungen:

  • Es kann kein JavaScript-Verhalten anderer Browser emulieren

PhantomJS

PhantomJS ist ein kopfloser Browser mit JavaScript-API. Es ist eine optimale Lösung für das Testen, Bearbeiten und Bearbeiten von Webseiten ohne Kopf und wird mit der Standard-DOM-API geliefert.

Um PhantomJS mit Seleniun verwenden zu können, muss GhostDriver verwendet werden. GhostDriver ist eine Implementierung des Webdriver Wire-Protokolls in einfachem JS für PhantomJS.

Die neueste Version von PhatomJS hat GhostDriver integriert und muss nicht separat installiert werden.

So funktioniert das System:

Schritte zum Ausführen von Selen mit PhatomJS

Schritt 1) Sie benötigen Eclipse mit installiertem Selen

Schritt 2) Laden Sie PhantomJS hier herunter

Schritt 3) Extrahieren Sie den heruntergeladenen Ordner in die Programmdateien

Schritt 4) Laden Sie den PhantomJS-Treiber von hier herunter. Fügen Sie das Glas Ihrem Projekt hinzu

Schritt 5) Fügen Sie den folgenden Code in Eclipse ein

Paket htmldriver;import java.io.File;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.phantomjs.PhantomJSDriver;öffentliches Klassenphantom {public static void main (String [] args) {Datei file = neue Datei ("C: / Programme / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());WebDriver-Treiber = neuer PhantomJSDriver ();driver.get ("http://www.google.com");WebElement element = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Seitentitel ist: + driver.getTitle ());driver.quit ();}}}}

Schritt 6) Führen Sie den Code aus. Sie werden feststellen, dass die Ausgabe in der Konsole angezeigt wird und kein Browser gestartet wird.

HINWEIS : Beim ersten Ausführen erhalten Sie je nach Ihren Einstellungen möglicherweise eine Sicherheitswarnung von Windows, damit PhantomJS ausgeführt werden kann. Klicken Sie auf Zugriff zulassen.

Viele Unternehmen verwenden Phantom.JS für verschiedene Zwecke, z.

  • Kopfloses Testen
  • Bildschirmaufnahme
  • Seitenautomatisierung
  • Netzwerküberwachung
  • So rendern Sie Dashboard-Screenshots für ihre Benutzer
  • So führen Sie Unit-Tests in der Befehlszeile aus
  • Generieren von Mitarbeiterhandbüchern von HTML nach PDF
  • Kombiniert mit QUnit für die Testsuite

Zusammenfassung

Um die Anwendung in verschiedenen Browsern schnell und ohne visuelle Unterbrechung zu testen, werden kopflose Browsertests verwendet. Aufgrund seiner Geschwindigkeit, Genauigkeit und leicht zugänglichen Funktionen werden HTML-Unit-Treiber und PhantomJS für kopflose Browsertests immer beliebter. Durch Befolgen einiger einfacher Schritte erfahren Sie, wie einfach diese Tools in andere Tools integriert werden können und den Testcode ausführen können.