Selenium Headless Browser Testing: HTMLUnitDriver & PhantomJS

Obsah:

Anonim

Selenium Web driver je nástroj pro automatizaci webu, který umožňuje provádět testy v různých prohlížečích. Těmito prohlížeči mohou být Internet Explorer, Firefox nebo Chrome. Chcete-li použít konkrétní prohlížeč se selenem, potřebujete odpovídající ovladač.

Při testovacím běhu spustí Selenium odpovídající prohlížeč, který se volá ve skriptu, a provede testovací kroky. Prohlížeč a provedení testu můžete vidět v akci.

Co je bezhlavý prohlížeč?

Bezhlavý prohlížeč je webový prohlížeč bez grafického uživatelského rozhraní . Tento program se bude chovat jako prohlížeč, ale nebude zobrazovat žádné grafické uživatelské rozhraní.

Mezi příklady patří Headless Drivers

  • HtmlUnit
  • Duch
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

V tomto tutoriálu se zaměříme na HtmlUnit a PhatomJS

HTMLUnitDriver

HTML UnitDriver je nejlehčí a nejrychlejší implementace bezhlavého prohlížeče pro WebDriver. Je založen na HtmlUnit. Je znám jako Headless Browser Driver . Je to stejné jako ovladač Chrome, IE nebo FireFox, ale nemá grafické uživatelské rozhraní, takže na obrazovce nelze vidět provedení testu.

Vlastnosti ovladače jednotky HTML

  • Podpora protokolů HTTPS a HTTP
  • Podpora odpovědí HTML (klikání na odkazy, odesílání formulářů, procházení modelu DOM dokumentu HTML atd.)
  • Podpora cookies
  • Podpora serveru proxy
  • Podpora základního ověřování a ověřování NTLM
  • Vynikající podpora JavaScriptu
  • Podpora metod odesílání GET a POST
  • Schopnost přizpůsobit záhlaví požadavků odesílaných na server
  • Schopnost určit, zda by selhání odpovědí ze serveru mělo vyvolávat výjimky nebo zda by se měly vracet jako stránky příslušného typu

Kroky k použití ovladače HTMLUnit se selenem

Krok 1) V Eclipse zkopírujte následující kód. Přidejte do projektu standardní soubory knihovny selenu. Nejsou potřeba žádné další soubory jar.

balíček htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmljednotka.HtmlUnitDriver;veřejná třída htmlUnitYest {public static void main (String [] args) {// Vytvoření nové instance ovladače jednotky HTMLOvladač WebDriver = nový HtmlUnitDriver ();// Přejít na Googledriver.get ("http://www.google.com");// Vyhledejte vyhledávací pole podle jeho názvuPrvek WebElement = driver.findElement (By.name ("q"));// Zadejte vyhledávací dotazelement.sendKeys ("Guru99");// Odeslat dotaz. Webdriver automaticky vyhledá formulář pomocí prvku pro zadávání textu// Není třeba najít / najít tlačítko Odeslatelement.submit ();// Tento kód vytiskne název stránkySystém. out .println ("Název stránky je: + driver.getTitle ());driver.quit ();}}

Krok 2) Spusťte kód. Pozorujete, že není spuštěn žádný prohlížeč a výsledky se zobrazují v konzole.

Výhody ovladače jednotky HTML:

  • Protože k testování nepoužívá žádné grafické uživatelské rozhraní, budou vaše testy probíhat na pozadí bez jakéhokoli vizuálního přerušení
  • Ve srovnání se všemi ostatními instancemi je provádění rychlejší
  • Chcete-li spustit testy pomocí ovladače HtmlUnit, můžete také vybrat jiné verze prohlížeče
  • Je nezávislý na platformě a je snazší spustit několik testů současně. Ideální pro testování zátěže.

Omezení:

  • Nemůže napodobovat chování JavaScriptu jiných prohlížečů

PhantomJS

PhantomJS je bezhlavý prohlížeč s JavaScript API. Je to optimální řešení pro bezhlavé testování webových stránek, pro přístup a manipulaci s webovými stránkami a je dodáváno se standardním DOM API.

Abyste mohli používat PhantomJS se Seleniunem, musíte použít GhostDriver. GhostDriver je implementace protokolu Webdriver Wire v jednoduchém JS pro PhantomJS.

Nejnovější verze PhatomJS má integrovaný GhostDriver a není třeba jej samostatně instalovat.

Systém funguje takto

Kroky ke spuštění selenu s PhatomJS

Krok 1) Potřebujete Eclipse s nainstalovaným selenem

Krok 2) Stáhněte si PhantomJS zde

Krok 3) Rozbalte staženou složku do Program Files

Krok 4) Stáhněte si ovladač PhantomJS odtud. Přidejte nádobu do svého projektu

Krok 5) Vložte následující kód do zatmění

balíček 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;public class phantom {public static void main (String [] args) {Soubor file = new File ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Ovladač WebDriver = nový PhantomJSDriver ();driver.get ("http://www.google.com");Prvek WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Název stránky je: + driver.getTitle ());driver.quit ();}}

Krok 6) Spusťte kód. Uvidíte, že výstup je zobrazen v konzole a není spuštěn žádný prohlížeč.

POZNÁMKA : Při prvním spuštění se na základě vašeho nastavení může zobrazit bezpečnostní varování z Windows, které umožní spuštění PhantomJS. Klikněte na Povolit přístup.

Mnoho organizací používá Phantom.JS k různým účelům, například

  • Bezhlavé testování
  • Snímání obrazovky
  • Automatizace stránek
  • Monitorování sítě
  • Vykreslení snímků řídicích panelů pro jejich uživatele
  • Spuštění testů jednotek na příkazovém řádku
  • Generovat příručky zaměstnanců z HTML do PDF
  • V kombinaci s QUnit pro testovací sadu

souhrn

K rychlému testování aplikace v různých prohlížečích a bez jakéhokoli vizuálního přerušení se používá bezhlavé testování prohlížeče. Díky své rychlosti, přesnosti a snadno přístupným funkcím si ovladač jednotky HTML a PhantomJS získávají popularitu pro testování bezhlavého prohlížeče. Provedením několika jednoduchých kroků zjistíte, jak snadno lze tyto nástroje integrovat s jinými nástroji a jak spustit testovací kód.