Test del browser senza testa al selenio: HTMLUnitDriver & PhantomJS

Sommario:

Anonim

Selenium Web driver è uno strumento di automazione web che consente di eseguire i test su diversi browser. Questi browser possono essere Internet Explorer, Firefox o Chrome. Per utilizzare un determinato browser con Selenium è necessario il driver corrispondente.

Durante l'esecuzione del test, Selenium avvia il browser corrispondente chiamato nello script ed esegue i passaggi del test. Puoi vedere il browser e l'esecuzione del test in azione.

Cos'è il browser senza testa?

Un browser headless è un browser web senza un'interfaccia utente grafica . Questo programma si comporterà proprio come un browser ma non mostrerà alcuna GUI.

Alcuni degli esempi di driver senza testa includono

  • HtmlUnit
  • Fantasma
  • PhantomJS
  • ZombieJS
  • Webdriver Watir

In questo tutorial ci concentreremo su HtmlUnit e PhatomJS

HTMLUnitDriver

HTML UnitDriver è il browser headless di implementazione più leggero e veloce per WebDriver. È basato su HtmlUnit. È noto come Headless Browser Driver . È lo stesso del driver Chrome, IE o FireFox, ma non ha una GUI, quindi non è possibile vedere l'esecuzione del test sullo schermo.

Caratteristiche del driver dell'unità HTML

  • Supporto per i protocolli HTTPS e HTTP
  • Supporto per le risposte HTML (clic sui collegamenti, invio di moduli, esplorazione del modello DOM del documento HTML ecc.)
  • Supporto per i cookie
  • Supporto per server proxy
  • Supporto per l'autenticazione di base e NTLM
  • Eccellente supporto JavaScript
  • Supporto per i metodi di invio GET e POST
  • Possibilità di personalizzare le intestazioni delle richieste inviate al server
  • Capacità di determinare se le risposte non riuscite dal server devono generare eccezioni o devono essere restituite come pagine del tipo appropriato

Passaggi per utilizzare HTMLUnit Driver con Selenium

Passaggio 1) In Eclipse, copia il codice seguente. Aggiungi i file della libreria di selenio standard al progetto. Non sono necessari file jar aggiuntivi.

pacchetto htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;public class htmlUnitYest {public static void main (String [] args) {// Creazione di una nuova istanza del driver dell'unità HTMLDriver WebDriver = nuovo HtmlUnitDriver ();// Vai a Googledriver.get ("http://www.google.com");// Individua la casella di ricerca utilizzando il suo nomeElemento WebElement = driver.findElement (By.name ("q"));// Immettere una query di ricercaelement.sendKeys ("Guru99");// Invia la query. Webdriver cerca il modulo utilizzando automaticamente l'elemento di input di testo// Non è necessario individuare / trovare il pulsante di invioelement.submit ();// Questo codice stamperà il titolo della paginaSistema. out .println ("Il titolo della pagina è: + driver.getTitle ());driver.quit ();}}

Passaggio 2) Esegui il codice. Osserverai che nessun browser viene avviato e i risultati vengono visualizzati nella console.

Vantaggi del driver unità HTML:

  • Poiché non utilizza alcuna GUI per eseguire il test, i test verranno eseguiti in background senza alcuna interruzione visiva
  • Rispetto a tutte le altre istanze l'esecuzione è più veloce
  • Per eseguire i test tramite il driver HtmlUnit puoi anche selezionare altre versioni del browser
  • È indipendente dalla piattaforma ed è più facile eseguire più test contemporaneamente. Ideale per prove di carico.

Limitazioni:

  • Non può emulare il comportamento JavaScript di altri browser

PhantomJS

PhantomJS è un browser headless con API JavaScript. È una soluzione ottimale per il test di siti Web senza testa, l'accesso e la manipolazione di pagine Web e viene fornito con l'API DOM standard.

Per utilizzare PhantomJS con Seleniun, è necessario utilizzare GhostDriver. GhostDriver è un'implementazione del protocollo Webdriver Wire in semplice JS per PhantomJS.

L'ultima versione di PhatomJS ha GhostDriver integrato e non è necessario installarlo separatamente.

Ecco come funziona il sistema-

Passaggi per eseguire Selenium con PhatomJS

Passaggio 1) È necessario Eclipse con Selenium installato

Passaggio 2) Scarica PhantomJS qui

Passaggio 3) Estrai la cartella scaricata in Programmi

Passaggio 4) Scarica il driver PhantomJS da qui. Aggiungi il barattolo al tuo progetto

Passaggio 5) Incolla il seguente codice in eclipse

pacchetto 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;fantasma della classe pubblica {public static void main (String [] args) {File file = nuovo file ("C: / Programmi / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Driver WebDriver = nuovo PhantomJSDriver ();driver.get ("http://www.google.com");Elemento WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Il titolo della pagina è: + driver.getTitle ());driver.quit ();}}

Passaggio 6) Esegui il codice. Si osserverà che l'output viene mostrato nella console e non viene avviato alcun browser.

NOTA : Alla prima esecuzione, in base alle impostazioni, potresti ricevere un avviso di sicurezza da Windows per consentire l'esecuzione di PhantomJS. Fare clic su Consenti accesso.

Molte organizzazioni utilizzano Phantom.JS per vari scopi, ad esempio,

  • Test senza testa
  • Cattura schermo
  • Automazione della pagina
  • Monitoraggio della rete
  • Per eseguire il rendering degli screenshot della dashboard per i propri utenti
  • Per eseguire gli unit test sulla riga di comando
  • Per generare manuali per i dipendenti da HTML a PDF
  • Combinato con QUnit per la suite di test

Sommario

Per testare l'applicazione rapidamente in vari browser e senza alcuna interruzione visiva, viene utilizzato il test del browser headless. Grazie alla sua velocità, precisione e funzionalità di facile accesso, il driver dell'unità HTML e PhantomJS stanno guadagnando popolarità per i test del browser headless. Seguendo alcuni semplici passaggi si impara con quanta facilità questi strumenti possono essere integrati con altri strumenti e possono eseguire il codice di test.