what is headless browser
Ten samouczek wyjaśnia, czym jest przeglądarka bezgłowa, jej zalety, przykłady i testowanie bezgłowej przeglądarki przy użyciu selenu. Dowiesz się również o HtmlUnitDrvier:
W ciągu ostatnich kilku lat byliśmy świadkami ewolucji sieci z prostych do bardzo zaawansowanych stron internetowych z pięknym interfejsem użytkownika. Krótko mówiąc, obecnie JavaScript bardzo dobrze kontroluje sieć, dzięki czemu może obsłużyć prawie każdą interakcję na stronach internetowych.
Dzisiaj widzimy, że przeglądarki są tak wydajne, że mogą łatwo zrozumieć, jak przetwarzać JavaScript. W koordynacji z JavaScript, przeglądarka jest obsługiwana programowo. Przeglądarki bezgłowe są uważane za bardzo przydatne do testowania przeglądarek internetowych, ponieważ ulepszają nasze wysiłki.
merge sort c ++ kod źródłowy
Czego się nauczysz:
- Co to jest przeglądarka bezgłowa?
- Wniosek
Co to jest przeglądarka bezgłowa?
Bez głowy - O tak, dobrze przeczytałeś. Bezgłowy oznacza przeglądarkę internetową bez interfejsu użytkownika. Mówiąc dokładniej, przeglądarki bezgłowe to te, które faktycznie uzyskują dostęp do strony internetowej, ale GUI jest ukryte przed użytkownikiem.
Przeglądarka bezgłowa jest taka sama jak każda inna przeglądarka, jedyna różnica polega na tym, że nie widzimy niczego na ekranie. Tutaj możemy powiedzieć, że program faktycznie działa na zapleczu i nic nie widać na ekranie. Tak więc wiadomo, że jest to ten bez Head / GUI.
Podobnie jak zwykła przeglądarka, przeglądarka bezgłowa wykonuje wszystkie funkcje, takie jak klikanie linków, nawigowanie po stronach, pobieranie dokumentu, przesyłanie dokumentu itp., Wykonując wszystkie instrukcje zgodnie z naszym programem.
Zwykła przeglądarka postępowałaby z każdym krokiem programu za pomocą prezentacji GUI, podczas gdy w przypadku przeglądarki bezgłowej wszystkie kroki programu są wykonywane sekwencyjnie i poprawnie i możemy je śledzić za pomocą konsoli lub polecenia- interfejs liniowy.
Zalety bezgłowej przeglądarki
# 1) Przeglądarki bezgłowe są używane, gdy maszyna nie ma GUI, to znaczy podczas korzystania z systemu Linux (system operacyjny bez GUI) jest uruchamiana za pośrednictwem interfejsu wiersza poleceń i w rzeczywistości nie ma interfejsu do wyświetlenia.
#dwa) Można ich również użyć w przypadku, gdy nie ma potrzeby przeglądania czegokolwiek, a naszym celem jest po prostu zapewnienie, że wszystkie testy zostaną pomyślnie wykonane wiersz po wierszu.
# 3) Gdy istnieje potrzeba wykonywania testów równoległych, przeglądarki oparte na interfejsie użytkownika zużywają dużo pamięci i / lub zasobów. Dlatego tutaj preferowana jest przeglądarka Headless.
# 4) Jeśli chcemy przeprowadzić testy regresji dla następnych nadchodzących wersji z ciągłą integracją i skończyliśmy z testami między przeglądarkami, można użyć bezgłowego testowania przeglądarki.
# 5) Jeśli chcemy symulować wiele przeglądarek na jednym komputerze lub uruchamiać przypadki testowe tylko do tworzenia danych, używamy przeglądarek bezgłowych.
# 6) W porównaniu do prawdziwych przeglądarek, bezgłowe przeglądarki są szybsze. Dlatego są one wybierane w celu szybszego wykonania.
Wady bezgłowej przeglądarki
# 1) Chociaż bezgłowe przeglądarki są bardzo szybkie, nadal istnieją pewne wady. Ze względu na szybsze ładowanie stron czasami trudno jest debugować problemy.
#dwa) Testowanie w prawdziwej przeglądarce obejmuje wykonywanie przypadków testowych w obecności GUI. Testy te są również wykonywane na oczach użytkownika, dzięki czemu użytkownik może wchodzić w interakcje z zespołem, odwoływać się do GUI i omawiać, gdzie wymagane są zmiany lub poprawki. W takim przypadku nie można używać przeglądarek bezgłowych.
# 3) Ponieważ przeglądarki bezgłowe nie reprezentują graficznego interfejsu użytkownika, zgłaszanie błędów za pomocą zrzutów ekranu jest kłopotliwe. Prawdziwa przeglądarka pomaga w przedstawianiu defektów, generując zrzuty ekranu, ponieważ zrzuty ekranu są niezbędne w testowaniu.
# 4) W przypadku, gdy wymagane jest dużo debugowania przeglądarki, korzystanie z przeglądarek bezgłowych może być trudne.
Przykłady przeglądarek bezgłowych
Dostępnych jest wiele przeglądarek bezgłowych.
c ++ podwójnie połączona lista
Poniżej wymieniono kilka przykładów:
- Przeglądarki jednostek HTML
- Firefox
- Chrom
- PhantomJS
- Zombie.js
- TrifleJS
- SlimerJS
- Pluśnięcie
- SimpleBrowser
- NodeJS
Testowanie bez głowy z selenem
Selenium to darmowe narzędzie testowe typu open source. Jest to dość dobrze znane i wydajne narzędzie do automatyzacji wykonywania testów automatycznych.
Selenium pozwala nam pisać skrypty testowe w różnych językach, takich jak Java, Python, C #, Ruby, Perl, Scala itp., Obsługując wiele przeglądarek, takich jak Firefox, Chrome, Internet Explorer, Opera, Safari itp. I może działać w systemie Windows , Linux i macOS.
Selenium Webdriver zapewnia dobrą obsługę dynamicznych stron internetowych, na których różne elementy internetowe zmieniają się bez ponownego ładowania samej strony.
Bezgłowy Chrome i Firefox
Zarówno Firefox, jak i przeglądarki Chrome obsługują testowanie automatyzacji Headless, czyli implementację kodu w przeglądarkach Firefox i Chrome bez GUI.
Przykład bezgłowego Firefoksa
Bezgłowy Firefox zapewnia obsługę wersji od 56 i jest dostępny w systemach Windows, Linux i macOS. Musimy pobrać plik geckodriver.exe najnowszej wersji przeglądarki Firefox i upewnić się, że wersja, z której będziemy korzystać, jest większa niż minimalna obsługiwana wersja. Firefox działa w trybie headless poprzez metodę headless ().
Zobaczmy kod przeglądarki Firefox w trybie bezgłowym:
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class HeadlessFirefox { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.gecko.driver',' E://Selenium/latest firefox exe/geckodriver.exe'); FirefoxOptions options = new FirefoxOptions(); options.setHeadless(true); WebDriver driver = new FirefoxDriver(options); driver.get('www.google.com/'); System.out.println('Executing Firefox Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
Podczas wykonywania powyższego kodu dla przeglądarki Firefox w trybie Headless, wyświetlany jest tytuł Strony i jej adres URL. Kod jest wykonywany w trybie Headless i można go śledzić na konsoli.
Podobnie jak Headless Firefox jest obsługiwany przez Selenium, działa również na SlimmerJS i W3C WebDrier.
Przykład bezgłowego Chrome
Headless Chrome zapewnia obsługę Chrome w wersji 60 i nowszych i jest dostępny dla systemów Windows, Linux i macOS. Musimy pobrać plik .exe najnowszej wersji przeglądarki Chrome.
Poniżej podano składnię korzystania z przeglądarki Chrome w trybie bezgłowym:
ChromeOptions options = new ChromeOptions(); options.addArguments(“--headless”); OR options.setHeadless(true);
Zobaczmy kod przeglądarki Chrome w trybie bezgłowym:
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class HeadlessChrome { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','E://Selenium/latest chrome exe/chromedriver.exe'); ChromeOptions options = new ChromeOptions(); options.addArguments('--headless'); WebDriver driver = new ChromeDriver(options); driver.get('www.google.com/'); System.out.println('Executing Chrome Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
Podczas wykonywania powyższego kodu dla przeglądarki Chrome w trybie Headless, wyświetlany jest tytuł strony i jej adres URL. Kod jest wykonywany, a wykonanie można śledzić na konsoli.
Headless HtmlUnitDriver
Co to jest HtmlUnitDriver?
HtmlUnitDriver to bezgłowa przeglądarka internetowa napisana w Javie. Nazwa sugeruje, że jest to sterownik Headless oparty na HtmlUnit. HtmlUnitDriver to wbudowana przeglądarka bezgłowa w Selenium WebDriver. Uważana jest za najlżejszą i najszybszą przeglądarkę.
Przejdźmy do implementacji HtmlUnitDriver. Pliki JAR HtmlUnitDriver można pobrać z oficjalnej strony Selenium.
HtmlUnitDriver w trybie bezgłowym
Podobnie jak w przypadku wszystkich innych przeglądarek, również dla HtmlUnitDriver musimy utworzyć obiekt dla tej klasy, która będzie uruchamiać kod w trybie headless.
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class HtmUnitDriver { public static void main(String() args) { // TODO Auto-generated method stub WebDriver driver = new HtmlUnitDriver(); driver.get('https://www.google.com/'); System.out.println('Executing HtmlUnitDriver in Headless mode..
'); System.out.println('>> Page Title : '+ driver.getTitle()); System.out.println('>> Page URL : '+ driver.getCurrentUrl()); } }
Tak więc po wykonaniu powyższego kodu dla HtmlUnitDriver w trybie Headless, otrzymane dane wyjściowe wyświetlają tytuł strony i jej adres URL. Dane wyjściowe są odbierane za pośrednictwem konsoli, gdzie wszystkie funkcje wykonywane w programie można przeglądać w sposób krokowy.
fazy cyklu życia oprogramowania
Poniżej znajduje się zrzut ekranu powyższego kodu:
Funkcje / zalety HtmlUnitDriver
(wizerunek źródło )
- Zapewnia obsługę protokołów HTTPS i HTTP.
- Świetne wsparcie dla JavaScript.
- Pomaga w wielozadaniowości, umożliwiając w ten sposób uruchamianie wielu testów.
- Zapewnia obsługę plików cookie. Obsługuje również serwery proxy.
- Poprawia wydajność i szybkość skryptów testowych, ponieważ ma najszybszą implementację WebDriver.
- HtmlUnitDriver jest niezależny od platformy.
- Ponieważ domyślnie jest bezgłowy, obsługuje testowanie bezgłowe.
Wady HtmlUnitDriver
- Korzystanie z HtmlUnitDriver nie jest możliwe w przypadku złożonych witryn internetowych.
- W porównaniu z prawdziwymi testami przeglądarki, w przypadku przeglądarek bezgłowych, takich jak HtmlUnitDriver, debugowanie skryptu staje się bardzo trudne.
- Generowanie zrzutów ekranu nie jest możliwe w przypadku HtmlUnitDriver.
- Przeglądarki bezgłowe emulują inne przeglądarki.
Wniosek
Testowanie przeglądarek bezgłowych jest w rzeczywistości szybsze, zapewniając dużą szybkość i wydajność, ale nie udaje się osiągnąć niektórych specyficznych funkcji, które rzeczywiście są spełniane przez przeglądarki bezgłowe / rzeczywiste.
Headless Browser ma swoje zalety, podczas gdy Real Browser ma swoje własne. Zgodnie z potrzebą testowania można wybrać dowolną technikę, która jest preferowana i korzystna dla testera.
Na przykład: W przypadku zaangażowania użytkownika można wybrać testowanie w przeglądarce Real Browser. Jeśli nie ma wymagań dotyczących prezentacji interfejsu użytkownika, aby szybko przeprowadzić testy, można przejść do testów bezgłowej przeglądarki.
Bardziej wydajne byłoby testowanie z połączeniem zarówno przeglądarki Headless, jak i Real Browser. W ten sposób pokonując ograniczenia każdego z osobna.
Mam nadzieję, że ten samouczek wyjaśniłby wszystkie twoje zapytania dotyczące bezgłowego testowania przeglądarki i bezgłowego testowania przeglądarki !!
rekomendowane lektury
- Geb Tutorial - Testowanie automatyzacji przeglądarki za pomocą narzędzia Geb
- Samouczek Parrot QA: Przegląd narzędzia do testowania funkcjonalnego w różnych przeglądarkach
- Samouczek Browserstack: platforma testowania aplikacji i przeglądarki (PRZEWODNIK)
- Samouczek IE Tester - testowanie przeglądarki Internet Explorer w trybie online
- Testowanie obciążenia w prawdziwych przeglądarkach przy użyciu elementu Tricentis Flood
- Samouczek Selenium Grid: Konfiguracja i przykład testowania w różnych przeglądarkach
- 10 najlepszych narzędzi do testowania w różnych przeglądarkach w 2021 roku (najnowszy ranking)
- Co to jest testowanie w różnych przeglądarkach i jak je wykonywać: kompletny przewodnik