Testarea browserului fără cap Selenium: HTMLUnitDriver & PhantomJS

Cuprins:

Anonim

Driverul Selenium Web este un instrument de automatizare web care vă permite să rulați testele pe diferite browsere. Aceste browsere pot fi Internet Explorer, Firefox sau Chrome. Pentru a utiliza un anumit browser cu Selenium aveți nevoie de driver corespunzător.

La test, Selenium lansează browserul corespunzător apelat în script și execută pașii de testare. Puteți vedea browserul și execuția testului în acțiune.

Ce este browserul fără cap?

Un browser fără cap este un browser web fără o interfață grafică pentru utilizator . Acest program se va comporta exact ca un browser, dar nu va afișa nici o GUI.

Unele dintre exemplele de drivere fără cap includ

  • HtmlUnit
  • Fantomă
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

În acest tutorial ne vom concentra pe HtmlUnit și PhatomJS

HTMLUnitDriver

HTML UnitDriver este cel mai ușor și mai rapid browser de implementare fără cap pentru WebDriver. Se bazează pe HtmlUnit. Este cunoscut sub numele de Headless Browser Driver . Este la fel ca driverul Chrome, IE sau FireFox, dar nu are GUI, deci nu se poate vedea execuția testului pe ecran.

Caracteristici ale driverului de unitate HTML

  • Suport pentru protocoalele HTTPS și HTTP
  • Suport pentru răspunsuri HTML (clic pe linkuri, trimiterea formularelor, parcurgerea modelului DOM al documentului HTML etc.)
  • Suport pentru cookie-uri
  • Suport pentru server proxy
  • Suport pentru autentificare de bază și NTLM
  • Excelent suport JavaScript
  • Suport pentru metodele de trimitere GET și POST
  • Posibilitatea de a personaliza antetele cererii trimise către server
  • Abilitatea de a determina dacă răspunsurile eșuate de la server ar trebui să arunce excepții sau să fie returnate ca pagini de tipul corespunzător

Pași pentru a utiliza driverul HTMLUnit cu Selenium

Pasul 1) În Eclipse, copiați următorul cod. Adăugați fișierele standard ale bibliotecii de seleniu la proiect. Nu sunt necesare fișiere jar suplimentare.

pachet 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 main main (String [] args) {// Crearea unei noi instanțe a driverului de unitate HTMLDriver WebDriver = nou HtmlUnitDriver ();// Navigați la Googledriver.get („http://www.google.com”);// Localizați caseta de căutare folosind numele acesteiaElement WebElement = driver.findElement (By.name ("q"));// Introduceți o interogare de căutareelement.sendKeys ("Guru99");// Trimiteți interogarea. Webdriver caută formularul utilizând automat elementul de introducere a textului// Nu este nevoie să localizați / găsiți butonul de trimitereelement.submit ();// Acest cod va imprima titlul paginiiSistem. out .println ("Titlul paginii este: + driver.getTitle ());driver.quit ();}}

Pasul 2) Rulați codul. Veți observa că nu este lansat niciun browser și rezultatele sunt afișate în consolă.

Avantajele driverului de unitate HTML:

  • Deoarece nu folosește nici o interfață grafică pentru a testa, testele dvs. vor rula în fundal fără nicio întrerupere vizuală
  • Comparativ cu toate celelalte instanțe, execuția este mai rapidă
  • Pentru a rula testele prin intermediul driverului HtmlUnit puteți selecta și alte versiuni de browser
  • Este independent de platformă și este mai ușor să rulați simultan mai multe teste. Ideal pentru testarea sarcinii.

Limitări:

  • Nu poate emula comportamentul JavaScript al altor browsere

PhantomJS

PhantomJS este un browser fără cap cu API JavaScript. Este o soluție optimă pentru testarea site-urilor fără cap, accesarea și manipularea paginilor web și vine cu API-ul DOM standard.

Pentru a utiliza PhantomJS cu Seleniun, trebuie să folosiți GhostDriver. GhostDriver este o implementare a protocolului Webdriver Wire în JS simplu pentru PhantomJS.

Cea mai recentă versiune a PhatomJS a integrat GhostDriver și nu este nevoie să o instalați separat.

Iată cum funcționează sistemul-

Pași pentru a rula Seleniu cu PhatomJS

Pasul 1) Aveți nevoie de Eclipse cu Selenium instalat

Pasul 2) Descărcați PhantomJS aici

Pasul 3) Extrageți folderul descărcat în Fișiere de program

Pasul 4) Descărcați driverul PhantomJS de aici. Adăugați borcanul la proiectul dvs.

Pasul 5) Lipiți următorul cod în eclipsă

pachet 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;fantomă de clasă publică {public static main main (String [] args) {Fișier fișier = fișier nou („C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe”);System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Driver WebDriver = nou PhantomJSDriver ();driver.get („http://www.google.com”);Element WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Titlul paginii este: + driver.getTitle ());driver.quit ();}}

Pasul 6) Rulați codul. Veți observa că ieșirea este afișată în consolă și nu este lansat niciun browser.

NOTĂ : La prima rularea, pe baza setărilor dvs., puteți primi avertisment de securitate de la Windows pentru a permite rularea PhantomJS. Faceți clic pe Permiteți accesul.

Multe organizații folosesc Phantom.JS în diferite scopuri, de exemplu,

  • Testare fără cap
  • Captură de ecran
  • Automatizarea paginii
  • Monitorizarea rețelei
  • Pentru a reda capturi de ecran pentru utilizatorii lor
  • Pentru a rula teste unitare pe linia de comandă
  • Pentru a genera manuale pentru angajați de la HTML la PDF
  • Combinat cu QUnit pentru suita de testare

rezumat

Pentru a testa rapid aplicația în diferite browsere și fără nicio întrerupere vizuală, se folosește Testarea browserului fără cap. Datorită vitezei, preciziei și caracteristicilor ușor de accesat, driverul de unitate HTML și PhantomJS câștigă popularitate pentru testarea browserului fără cap. Urmând câțiva pași simpli, veți afla cât de ușor aceste instrumente pot fi integrate cu alte instrumente și pot executa codul de testare.