Selenium Headless Browser Testing: HTMLUnitDriver & PhantomJS

Innholdsfortegnelse:

Anonim

Selenium Web Driver er et nettautomatiseringsverktøy som lar deg kjøre testene mot forskjellige nettlesere. Disse nettleserne kan være Internet Explorer, Firefox eller Chrome. For å bruke en bestemt nettleser med Selenium trenger du tilsvarende driver.

Ved testkjøring lanserer Selenium den tilhørende nettleseren som er kalt i skriptet og utfører teststrinn. Du kan se nettleseren og testutførelsen i aksjon.

Hva er hodeløs nettleser?

En hodeløs nettleser er en nettleser uten et grafisk brukergrensesnitt . Dette programmet vil oppføre seg akkurat som en nettleser, men vil ikke vise noen GUI.

Noen av eksemplene på hodeløse drivere inkluderer

  • HtmlUnit
  • Spøkelse
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

I denne opplæringen vil vi fokusere på HtmlUnit og PhatomJS

HTMLUnitDriver

HTML UnitDriver er den letteste og raskeste implementeringshodeløse nettleseren for WebDriver. Den er basert på HtmlUnit. Det er kjent som hodeløs nettleserdriver . Det er det samme som Chrome-, IE- eller FireFox-driveren, men det har ikke GUI, så man kan ikke se testutførelsen på skjermen.

Funksjoner av HTML-enhetsdriver

  • Støtte for HTTPS- og HTTP-protokollene
  • Støtte for HTML-svar (klikke på lenker, sende inn skjemaer, gå DOM-modellen til HTML-dokumentet osv.)
  • Støtte for informasjonskapsler
  • Støtte for proxy-server
  • Støtte for grunnleggende og NTLM-autentisering
  • Utmerket JavaScript-støtte
  • Støtte for innsendingsmetoder GET og POST
  • Evne til å tilpasse forespørselsoverskriftene som sendes til serveren
  • Evne til å avgjøre om sviktende svar fra serveren skal gi unntak eller skal returneres som sider av riktig type

Fremgangsmåte for å bruke HTMLUnit Driver med Selen

Trinn 1) I Eclipse, kopier følgende kode. Legg til standard selenbiblioteksfiler i prosjektet. Ingen ekstra jar-filer er påkrevd.

pakke htmldriver;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.WebElement;importer org.openqa.selenium.htmlunit.HtmlUnitDriver;offentlig klasse htmlUnitYest {public static void main (String [] args) {// Opprette en ny forekomst av HTML-enhetsdriverenWebDriver driver = ny HtmlUnitDriver ();// Naviger til Googledriver.get ("http://www.google.com");// Finn søkeboksen ved å bruke navnetWebElement-element = driver.findElement (etter.navn ("q"));// Skriv inn et søkelement.sendKeys ("Guru99");// Send inn spørringen. Webdriver søker automatisk etter skjemaet ved hjelp av tekstinntastingselementet// Ingen grunn til å finne / finne send-knappenelement.submit ();// Denne koden vil skrive ut sidetittelenSystem. ut .println ("Sidetittel er: + driver.getTitle ());driver.quit ();}}

Trinn 2) Kjør koden. Du vil observere at ingen nettlesere er lansert, og resultatene vises i konsollen.

Fordeler med HTML-enhetsdriver:

  • Siden det ikke bruker noen GUI for å teste, vil testene dine kjøres i bakgrunnen uten visuelt avbrudd
  • Sammenlignet med alle andre tilfeller er kjøringen raskere
  • For å kjøre testene dine gjennom HtmlUnit-driveren kan du også velge andre nettleserversjoner
  • Det er plattformuavhengig og lettere å kjøre flere tester samtidig. Ideell for lastetesting.

Begrensninger:

  • Det kan ikke etterligne andre nettlesere JavaScript-oppførsel

PhantomJS

PhantomJS er en hodeløs nettleser med JavaScript API. Det er en optimal løsning for Headless Website Testing, få tilgang til og manipulere nettsider og kommer med standard DOM API.

For å kunne bruke PhantomJS med Seleniun, må man bruke GhostDriver. GhostDriver er en implementering av Webdriver Wire-protokollen i enkel JS for PhantomJS.

Den siste utgivelsen av PhatomJS har integrert GhostDriver, og det er ikke nødvendig å installere den separat.

Slik fungerer systemet-

Fremgangsmåte for å kjøre selen med PhatomJS

Trinn 1) Du trenger Eclipse med Selenium installert

Trinn 2) Last ned PhantomJS her

Trinn 3) Pakk ut den nedlastede mappen til programfiler

Trinn 4) Last ned PhantomJS-driveren herfra. Legg glasset til prosjektet ditt

Trinn 5) Lim inn følgende kode i formørkelse

pakke htmldriver;importere java.io.File;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.WebElement;importer org.openqa.selenium.phantomjs.PhantomJSDriver;offentlig klasse 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 driver = ny PhantomJSDriver ();driver.get ("http://www.google.com");WebElement-element = driver.findElement (etter.navn ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Sidetittel er: + driver.getTitle ());driver.quit ();}}

Trinn 6) Kjør koden. Du vil observere at utdataene vises i konsollen og ingen nettlesere startes.

MERKNAD : Ved første kjøring, basert på innstillingene dine, kan du få sikkerhetsadvarsel fra Windows for å tillate å kjøre PhantomJS. Klikk på Tillat tilgang.

Mange organisasjoner bruker Phantom.JS til forskjellige formål, for eksempel

  • Hodeløs testing
  • Skjermopptak
  • Sideautomatisering
  • Nettverksovervåking
  • Å gjengi skjermbilder av dashbordet til brukerne
  • Å kjøre enhetstester på kommandolinjen
  • Å generere medarbeiderhåndbøker fra HTML til PDF
  • Kombinert med QUnit for testsuiten

Sammendrag

For å teste applikasjonen raskt i forskjellige nettlesere og uten visuelle forstyrrelser, brukes hodeløs nettlesertesting. På grunn av sin hastighet, nøyaktighet og funksjoner som er enkle å få, blir HTML-enhetsdriver og PhantomJS stadig mer populære for hodeløs nettlesertesting. Ved å følge noen enkle trinn får du vite hvor enkelt disse verktøyene kan integreres med andre verktøy og kan utføre testkoden.