Selenium Headless Browser-testen: HTMLUnitDriver & PhantomJS

Inhoudsopgave:

Anonim

Selenium Web-driver is een webautomatiseringstool waarmee u de tests in verschillende browsers kunt uitvoeren. Deze browsers kunnen Internet Explorer, Firefox of Chrome zijn. Om een ​​bepaalde browser met Selenium te gebruiken, hebt u de bijbehorende driver nodig.

Bij het testen start Selenium de overeenkomstige browser die in het script wordt aangeroepen en voert het teststappen uit. U kunt de browser en de testuitvoering in actie zien.

Wat is een headless browser?

Een headless browser is een webbrowser zonder grafische gebruikersinterface . Dit programma gedraagt ​​zich net als een browser, maar toont geen GUI.

Enkele voorbeelden van Headless Drivers zijn

  • HtmlUnit
  • Geest
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

In deze tutorial zullen we ons concentreren op HtmlUnit en PhatomJS

HTMLUnitDriver

HTML UnitDriver is de lichtste en snelste headless-browser voor implementatie van WebDriver. Het is gebaseerd op HtmlUnit. Het staat bekend als Headless Browser Driver . Het is hetzelfde als Chrome, IE of FireFox-stuurprogramma, maar het heeft geen GUI, dus men kan de testuitvoering niet op het scherm zien.

Kenmerken van HTML-eenheidstuurprogramma

  • Ondersteuning voor de HTTPS- en HTTP-protocollen
  • Ondersteuning voor HTML-reacties (klikken op links, formulieren indienen, door het DOM-model van het HTML-document lopen enz.)
  • Ondersteuning voor cookies
  • Proxy server ondersteuning
  • Ondersteuning voor basis- en NTLM-authenticatie
  • Uitstekende JavaScript-ondersteuning
  • Ondersteuning voor verzendmethoden GET en POST
  • Mogelijkheid om de verzoekheaders aan te passen die naar de server worden verzonden
  • Mogelijkheid om te bepalen of falende reacties van de server uitzonderingen moeten opleveren of moeten worden geretourneerd als pagina's van het juiste type

Stappen om HTMLUnit-stuurprogramma te gebruiken met Selenium

Stap 1) Kopieer in Eclipse de volgende code. Voeg de standaard seleniumbibliotheekbestanden toe aan het project. Er zijn geen extra JAR-bestanden vereist.

pakket htmldriver;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.openqa.selenium.htmlunit.HtmlUnitDriver;openbare klasse htmlUnitYest {public static void main (String [] args) {// Een nieuw exemplaar van de HTML-eenheidstuurprogramma makenWebDriver-stuurprogramma = nieuwe HtmlUnitDriver ();// Navigeer naar Googledriver.get ("http://www.google.com");// Zoek het zoekvak met behulp van de naamWebElement-element = driver.findElement (By.name ("q"));// Voer een zoekopdracht inelement.sendKeys ("Guru99");// Dien de vraag in. Webdriver zoekt automatisch naar het formulier met behulp van het tekstinvoerelement// U hoeft de verzendknop niet te zoeken / vindenelement.submit ();// Deze code zal de paginatitel afdrukkenSysteem. out .println ("Paginatitel is: + driver.getTitle ());driver.quit ();​​

Stap 2) Voer de code uit. U zult zien dat er geen browser wordt gestart en de resultaten worden weergegeven in de console.

Voordelen van Html Unit Driver:

  • Omdat het geen GUI gebruikt om te testen, zullen uw tests op de achtergrond worden uitgevoerd zonder enige visuele onderbreking
  • In vergelijking met alle andere instanties is de uitvoering sneller
  • Om uw tests via de HtmlUnit-driver uit te voeren, kunt u ook andere browserversies selecteren
  • Het is platformonafhankelijk en gemakkelijker om meerdere tests tegelijkertijd uit te voeren. Ideaal voor het testen van belasting.

Beperkingen:

  • Het kan het JavaScript-gedrag van andere browsers niet emuleren

PhantomJS

PhantomJS is een headless browser met JavaScript API. Het is een optimale oplossing voor Headless Website Testing, toegang tot en manipulatie van webpagina's en wordt geleverd met de standaard DOM API.

Om PhantomJS met Seleniun te gebruiken, moet je GhostDriver gebruiken. GhostDriver is een implementatie van het Webdriver Wire-protocol in eenvoudige JS voor PhantomJS.

De nieuwste release van PhatomJS heeft GhostDriver geïntegreerd en het is niet nodig om het apart te installeren.

Hier is hoe het systeem werkt-

Stappen om Selenium uit te voeren met PhatomJS

Stap 1) Je hebt Eclipse nodig met Selenium geïnstalleerd

Stap 2) Download PhantomJS hier

Stap 3) Pak de gedownloade map uit naar Program Files

Stap 4) Download het PhantomJS-stuurprogramma vanaf hier. Voeg de pot toe aan je project

Stap 5) Plak de volgende code in eclipse

pakket htmldriver;importeer java.io.File;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.openqa.selenium.phantomjs.PhantomJSDriver;phantom van openbare klasse {public static void main (String [] args) {Bestandsbestand = nieuw bestand ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());WebDriver-stuurprogramma = nieuwe PhantomJSDriver ();driver.get ("http://www.google.com");WebElement-element = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Paginatitel is: + driver.getTitle ());driver.quit ();​​

Stap 6) Voer de code uit. U zult zien dat de uitvoer in de console wordt weergegeven en dat er geen browser wordt gestart.

OPMERKING : Bij de eerste keer opstarten, op basis van uw instellingen, krijgt u mogelijk een beveiligingswaarschuwing van Windows om PhantomJS uit te voeren. Klik op Toegang toestaan.

Veel organisaties gebruiken Phantom.JS voor verschillende doeleinden, bijvoorbeeld

  • Headless testen
  • Schermopname
  • Pagina-automatisering
  • Netwerkbewaking
  • Om dashboard-screenshots voor hun gebruikers weer te geven
  • Om eenheidstests uit te voeren op de opdrachtregel
  • Om werknemershandboeken van HTML naar PDF te genereren
  • Gecombineerd met QUnit voor de testsuite

Overzicht

Om de applicatie snel in verschillende browsers en zonder enige visuele onderbreking te testen, wordt headless browser Testing gebruikt. Vanwege de snelheid, nauwkeurigheid en gemakkelijk toegankelijke functies worden de HTML-eenheidstuurprogramma en PhantomJS steeds populairder voor headless browsertests. Door enkele eenvoudige stappen te volgen, leert u hoe gemakkelijk deze tools kunnen worden geïntegreerd met andere tools en hoe u de testcode kunt uitvoeren.