Selenium Headless Browser Testing: HTMLUnitDriver & PhantomJS

Spisie treści:

Anonim

Selenium Web driver to narzędzie do automatyzacji sieci, które umożliwia uruchamianie testów na różnych przeglądarkach. Tymi przeglądarkami może być Internet Explorer, Firefox lub Chrome. Aby używać określonej przeglądarki z Selenium, potrzebujesz odpowiedniego sterownika.

Podczas testu Selenium uruchamia odpowiednią przeglądarkę wywołaną w skrypcie i wykonuje kroki testowe. Możesz zobaczyć przeglądarkę i wykonanie testu w akcji.

Co to jest przeglądarka bezgłowa?

Przeglądarka bezgłowa to przeglądarka internetowa bez graficznego interfejsu użytkownika . Ten program będzie zachowywał się jak przeglądarka, ale nie będzie wyświetlał żadnego GUI.

Niektóre przykłady sterowników bezgłowych obejmują

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

W tym samouczku skupimy się na HtmlUnit i PhatomJS

HTMLUnitDriver

HTML UnitDriver to najlżejsza i najszybsza implementacja bezgłowej przeglądarki WebDriver. Jest oparty na HtmlUnit. Jest znany jako Headless Browser Driver . Jest taki sam jak sterownik Chrome, IE lub FireFox, ale nie ma GUI, więc nie można zobaczyć wykonania testu na ekranie.

Funkcje sterownika jednostki HTML

  • Obsługa protokołów HTTPS i HTTP
  • Wsparcie dla odpowiedzi HTML (klikanie linków, przesyłanie formularzy, chodzenie po modelu DOM dokumentu HTML itp.)
  • Wsparcie dla plików cookie
  • Obsługa serwera proxy
  • Obsługa uwierzytelniania podstawowego i NTLM
  • Doskonała obsługa JavaScript
  • Obsługa metod przesyłania GET i POST
  • Możliwość dostosowania nagłówków żądań wysyłanych do serwera
  • Możliwość określenia, czy niepomyślne odpowiedzi z serwera powinny generować wyjątki, czy powinny być zwracane jako strony odpowiedniego typu

Kroki, aby użyć sterownika HTMLUnit z Selenium

Krok 1) W Eclipse skopiuj poniższy kod. Dodaj standardowe pliki biblioteki selenu do projektu. Nie są wymagane żadne dodatkowe pliki jar.

pakiet 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) {// Tworzenie nowej instancji sterownika jednostki HTMLSterownik WebDriver = nowy HtmlUnitDriver ();// Przejdź do Googledriver.get („http://www.google.com”);// Znajdź pole wyszukiwania, używając jego nazwyElement WebElement = driver.findElement (By.name ("q"));// Wpisz zapytanie wyszukiwaniaelement.sendKeys ("Guru99");// Prześlij zapytanie. Webdriver automatycznie wyszukuje formularz, używając elementu wprowadzania tekstu// Nie ma potrzeby lokalizowania / znajdowania przycisku przesyłaniaelement.submit ();// Ten kod wydrukuje tytuł stronySystem. out .println ("Tytuł strony to: + driver.getTitle ());driver.quit ();}}

Krok 2) Uruchom kod. Zaobserwujesz, że żadna przeglądarka nie jest uruchomiona, a wyniki są wyświetlane w konsoli.

Korzyści ze sterownika jednostki HTML:

  • Ponieważ do testowania nie używa żadnego GUI, testy będą działać w tle bez żadnych wizualnych zakłóceń
  • W porównaniu do wszystkich innych instancji wykonanie jest szybsze
  • Aby przeprowadzić testy za pomocą sterownika HtmlUnit, możesz również wybrać inne wersje przeglądarki
  • Jest niezależny od platformy i łatwiejszy do jednoczesnego uruchamiania kilku testów. Idealny do testowania obciążenia.

Ograniczenia:

  • Nie może emulować zachowania JavaScript innych przeglądarek

PhantomJS

PhantomJS to bezgłowa przeglądarka z JavaScript API. Jest to optymalne rozwiązanie do bezgłowego testowania witryn internetowych, uzyskiwania dostępu do stron internetowych i manipulowania nimi oraz jest wyposażone w standardowy interfejs API DOM.

Aby używać PhantomJS z Seleniun, należy użyć GhostDriver. GhostDriver to implementacja protokołu Webdriver Wire w prostym JS dla PhantomJS.

Najnowsza wersja PhatomJS ma zintegrowany GhostDriver i nie ma potrzeby instalowania go osobno.

Oto jak działa system-

Kroki, aby uruchomić Selenium z PhatomJS

Krok 1) Potrzebujesz Eclipse z zainstalowanym Selenium

Krok 2) Pobierz PhantomJS tutaj

Krok 3) Rozpakuj pobrany folder do Program Files

Krok 4) Pobierz sterownik PhantomJS stąd. Dodaj słoik do swojego projektu

Krok 5) Wklej następujący kod w Eclipse

pakiet 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) {Plik plik = nowy plik ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Sterownik WebDriver = nowy PhantomJSDriver ();driver.get („http://www.google.com”);Element WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Tytuł strony to: + driver.getTitle ());driver.quit ();}}

Krok 6) Uruchom kod. Zobaczysz, że dane wyjściowe są wyświetlane w konsoli i żadna przeglądarka nie jest uruchamiana.

UWAGA : Przy pierwszym uruchomieniu, w oparciu o twoje ustawienia, możesz otrzymać ostrzeżenie bezpieczeństwa od Windows, aby zezwolić na uruchomienie PhantomJS. Kliknij Zezwól na dostęp.

Wiele organizacji używa Phantom.JS do różnych celów, na przykład

  • Testowanie bez głowy
  • Zrzut ekranu
  • Automatyzacja stron
  • Monitorowanie sieci
  • Aby renderować zrzuty ekranu pulpitu nawigacyjnego dla swoich użytkowników
  • Aby uruchomić testy jednostkowe w wierszu poleceń
  • Generowanie podręczników pracowników z HTML do PDF
  • W połączeniu z QUnit dla zestawu testów

Podsumowanie

Aby szybko przetestować aplikację w różnych przeglądarkach i bez żadnych zakłóceń wizualnych, używane jest bezgłowe testowanie przeglądarki. Ze względu na szybkość, dokładność i łatwo dostępne funkcje, sterownik jednostki HTML i PhantomJS zyskują popularność w testowaniu przeglądarek bezgłowych. Wykonując kilka prostych kroków, dowiesz się, jak łatwo te narzędzia można zintegrować z innymi narzędziami i wykonać kod testowy.