Selenium Headless Browser Testing: HTMLUnitDriver & PhantomJS

Innehållsförteckning:

Anonim

Selenium Web Driver är ett webbautomationsverktyg som gör att du kan köra testerna mot olika webbläsare. Dessa webbläsare kan vara Internet Explorer, Firefox eller Chrome. För att använda en viss webbläsare med Selen behöver du motsvarande drivrutin.

Vid testkörning startar Selenium motsvarande webbläsare som kallas i skriptet och utför teststeg. Du kan se webbläsaren och testkörningen i aktion.

Vad är huvudlös webbläsare?

En huvudlös webbläsare är en webbläsare utan ett grafiskt användargränssnitt . Detta program kommer att fungera precis som en webbläsare men visar inte något GUI.

Några av exemplen på Headless Drivers inkluderar

  • HtmlUnit
  • Spöke
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

I denna handledning kommer vi att fokusera på HtmlUnit och PhatomJS

HTMLUnitDriver

HTML UnitDriver är den lättaste och snabbaste implementeringshuvudlösa webbläsaren för WebDriver. Den är baserad på HtmlUnit. Det är känt som Headless Browser Driver . Det är samma som Chrome-, IE- eller FireFox-drivrutinen, men det har inte GUI så att man inte kan se testkörningen på skärmen.

Funktioner i HTML-enhetsdrivrutin

  • Stöd för HTTPS- och HTTP-protokoll
  • Stöd för HTML-svar (klicka på länkar, skicka in formulär, gå DOM-modellen för HTML-dokumentet etc.)
  • Stöd för kakor
  • Stöd för proxyserver
  • Stöd för grundläggande och NTLM-autentisering
  • Utmärkt JavaScript-stöd
  • Stöd för inlämningsmetoder GET och POST
  • Möjlighet att anpassa förfrågningsrubrikerna som skickas till servern
  • Möjlighet att avgöra om felaktiga svar från servern ska leda till undantag eller ska returneras som sidor av lämplig typ

Steg för att använda HTMLUnit Driver med Selen

Steg 1) Kopiera följande kod i Eclipse. Lägg till standard selenbiblioteksfiler i projektet. Inga ytterligare jar-filer krävs.

paket htmldriver;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.htmlunit.HtmlUnitDriver;offentlig klass htmlUnitYest {public static void main (String [] args) {// Skapa en ny instans av HTML-enhetsdrivrutinenWebDriver-drivrutin = ny HtmlUnitDriver ();// Navigera till Googledriver.get ("http://www.google.com");// Leta reda på sökrutan med dess namnWebElement-element = driver.findElement (By.name ("q"));// Ange en sökfrågaelement.sendKeys ("Guru99");// Skicka in frågan. Webdriver söker automatiskt efter formuläret med hjälp av textinmatningselementet// Inget behov av att hitta / hitta inlämningsknappenelement.submit ();// Den här koden skriver ut sidans titelSystemet. ut .println ("Sidans titel är: + driver.getTitle ());driver.quit ();}}

Steg 2) Kör koden. Du kommer att observera att ingen webbläsare startas och resultaten visas i konsolen.

Fördelar med Html-enhetsdrivrutin:

  • Eftersom det inte använder något GUI för att testa, körs dina tester i bakgrunden utan några visuella avbrott
  • Jämfört med alla andra instanser är körningen snabbare
  • För att köra dina tester genom HtmlUnit-drivrutinen kan du också välja andra webbläsarversioner
  • Det är plattformsoberoende och lättare att köra flera tester samtidigt. Perfekt för lasttestning.

Begränsningar:

  • Det kan inte efterlikna andra webbläsares JavaScript-beteende

PhantomJS

PhantomJS är en huvudlös webbläsare med JavaScript API. Det är en optimal lösning för Headless Website Testing, åtkomst och manipulera webbsidor och levereras med standard DOM API.

För att kunna använda PhantomJS med Seleniun måste man använda GhostDriver. GhostDriver är en implementering av Webdriver Wire-protokollet i enkel JS för PhantomJS.

Den senaste versionen av PhatomJS har integrerat GhostDriver och det finns ingen anledning att installera den separat.

Så här fungerar systemet-

Steg för att köra selen med PhatomJS

Steg 1) Du behöver Eclipse med Selenium installerat

Steg 2) Ladda ner PhantomJS här

Steg 3) Extrahera den nedladdade mappen till programfiler

Steg 4) Ladda ner PhantomJS-drivrutinen härifrån. Lägg till burken i ditt projekt

Steg 5) Klistra in följande kod i förmörkelse

paket htmldriver;importera java.io.File;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.phantomjs.PhantomJSDriver;offentlig klass fantom {public static void main (String [] args) {Filfil = ny fil ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());WebDriver-drivrutin = ny PhantomJSDriver ();driver.get ("http://www.google.com");WebElement-element = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Sidans titel är: + driver.getTitle ());driver.quit ();}}

Steg 6) Kör koden. Du kommer att observera att utdata visas i konsolen och ingen webbläsare startas.

OBS : Vid första körningen, baserat på dina inställningar, kan du få säkerhetsvarning från Windows för att tillåta att köra PhantomJS. Klicka på Tillåt åtkomst.

Många organisationer använder Phantom.JS för olika ändamål, till exempel

  • Headless Testing
  • Skärminspelning
  • Sidautomatisering
  • Nätverksövervakning
  • Att göra instrumentpanelskärmbilder för sina användare
  • Att köra enhetstester på kommandoraden
  • Att skapa anställdas handböcker från HTML till PDF
  • Kombinerat med QUnit för testsviten

Sammanfattning

För att testa applikationen snabbt i olika webbläsare och utan några visuella avbrott används headless browser Testing. På grund av sin hastighet, noggrannhet och lättåtkomliga funktioner blir HTML-enhetsdrivrutinen och PhantomJS populär för headless webbläsartestning. Genom att följa några enkla steg lär du dig hur lätt dessa verktyg kan integreras med andra verktyg och kan utföra testkoden.