HTMLUnitDriver u Selenium
Bezglavi preglednik je web preglednik bez grafičkog korisničkog sučelja. Može raditi u pozadini bez vizualnih smetnji. Nudi učinkovit i učinkovit način testiranja web aplikacija uz uštedu vremena i resursa. U ovom ćemo vodiču zaroniti u to što je bezglavi preglednik, kada koristiti bezglavo testiranje preglednika i kako ga izvesti pomoću Selenium.
Što je Headless Browser?
Preglednik bez glave je web-preglednik bez grafičkog korisničkog sučelja. Ovaj će se program ponašati kao preglednik, ali neće prikazivati GUI.
Neki od primjera bezglavih vozača uključuju
- HtmlUnit
- Duh
- FantomJS
- ZombieJS
- Watir-web drajver
Kada koristiti bezglavo testiranje preglednika?
U današnje digitalno doba, web aplikacije razvijene su tako da budu kompatibilne sa širokim rasponom uređaja i platformi. Ovo često predstavlja izazov za programere web stranica koji trebaju osigurati da njihove aplikacije besprijekorno rade na svim tim platformama. Bezglavo testiranje preglednika idealno je rješenje za ovaj problem jer omogućuje programerima da testiraju svoje web aplikacije bez potrebe za grafičkim korisničkim sučeljem. Korištenjem bezglavog testiranja preglednika, programeri mogu jednostavno testirati složene web aplikacije s više komponenti i ovisnosti, utirući put bržem razvoju, kodu bez grešaka i zadovoljnim korisnicima.
Bezglavo testiranje preglednika s Selenium
Selenium je moćan alat za bezglavo testiranje preglednika, koji programerima omogućuje pokretanje automatiziranih testova bez potrebe za vidljivim korisničkim sučeljem. Pokretanjem testova u pozadini, Selenium može uštedjeti vrijeme i resurse, a također pomaže identificirati probleme koji možda nisu vidljivi u tradicionalnom okruženju testiranja temeljenom na korisničkom sučelju. To uključuje probleme povezane s izvedbom i probleme s izgledom koji mogu postati vidljivi samo u postavci bez glave. Međutim, važno je imati na umu ograničenja bezglavog testiranja i uravnotežiti ga s tradicionalnim metodama temeljenim na korisničkom sučelju kako bi se osigurala sveobuhvatna pokrivenost testom.
Popularni primjeri bezglavih preglednika
Dostupni su mnogi preglednici bez glave, svaki sa svojim jedinstvenim značajkama i prednostima, što ih čini prikladnima za različite slučajeve upotrebe. O njima raspravljamo u nastavku: -
FantomJS
PhantomJS je preglednik bez glave koji koristi WebKit kao motor za renderiranje i podržava različite web standarde kao što su HTML5, CSS3 i JavaSkripta. Može se koristiti za snimanje zaslona i automatizaciju stranica. Otvorenog je koda i kompatibilan s više operativnih sustava.
Primjer Selenium s bezglavim PhantomJS u Python
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # Set up PhantomJS options phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy() phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' # Set up the PhantomJS driver driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
krom
Chrome je najpopularniji preglednik na planeti i nudi i funkciju bez glave. Može se koristiti na više platformi i podržava programske jezike i okvire. Njegovi ugrađeni alati za otklanjanje pogrešaka i opsežna dokumentacija olakšavaju korištenje i rješavanje problema koji se mogu pojaviti tijekom testiranja.
Primjer Headless Chromea s Selenium in Python
from selenium import webdriver from selenium.webdriver.chrome.options import Options # Set up Chrome options chrome_options = Options() chrome_options.add_argument('--headless') # Run Chrome in headless mode chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # Set up the Chrome driver driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
Firefox
Firefox je popularan web preglednik koji se također može koristiti kao preglednik bez glave u svrhu testiranja. Jedna od prednosti korištenja Firefox kao preglednik bez glave je njegova lagana priroda, što ga čini svestranom opcijom za testiranje na različitim operativnim sustavima. Uz to, uz opsežnu dokumentaciju i podršku zajednice, Firefox izvrstan je izbor za one koji žele eksperimentirati s tehnologijom preglednika bez glave.
Primjer bez glave Firefox s Selenium in Python
from selenium import webdriver from selenium.webdriver.firefox.options import Options # Set up Firefox options firefox_options = Options() firefox_options.add_argument('--headless') # Run Firefox in headless mode # Set up the Firefox driver driver = webdriver.Firefox(options=firefox_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
Prednosti bezglavog testiranja preglednika
- Brže izvođenje testa
- Isplativo testiranje
- Bolja pokrivenost testiranjem
- Fleksibilnost u izvođenju testova
- Integracija s CI/CD cjevovodima
Nedostaci bezglavog testiranja preglednika
- Nedostatak GUI-ja
- Poteškoće u otklanjanju pogrešaka
- Ograničena podrška preglednika
HTMLUnitDriver
HTML UnitDriver je najlakši i najbrži preglednik bez glave za WebDriver. Temelji se na HtmlUnitu. Poznato je kao Headless upravljački program preglednika. Isto je kao Chrome, IE ili FireFox upravljački program, ali nema GUI pa se ne može vidjeti izvođenje testa na ekranu.
Značajke upravljačkog programa HTML jedinice
- Podrška za HTTPS i HTTP protokole
- Podrška za HTML odgovore (klikanje veza, slanje obrazaca, hodanje DOM modelom HTML dokumenta itd.)
- Podrška za kolačiće
- Podrška za proxy poslužitelj
- Podrška za osnovnu i NTLM provjeru autentičnosti
- Izvrstan JavaScript podrška
- Podrška za metode slanja GET i POST
- Mogućnost prilagodbe zaglavlja zahtjeva koji se šalju na poslužitelj
- Sposobnost utvrđivanja trebaju li neuspjeli odgovori s poslužitelja izbaciti iznimke ili se trebaju vratiti kao stranice odgovarajuće vrste
Koraci za korištenje HTMLUnit upravljačkog programa Selenium
Korak 1) In Eclipse, kopirajte sljedeći kod. Dodajte standardne datoteke knjižnice selena u projekt. Nisu potrebne dodatne jar datoteke.
package 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) { // Creating a new instance of the HTML unit driver WebDriver driver = new HtmlUnitDriver(); // Navigate to Google driver.get("http://www.google.com"); // Locate the searchbox using its name WebElement element = driver.findElement(By.name("q")); // Enter a search query element.sendKeys("Guru99"); // Submit the query. Webdriver searches for the form using the text input element automatically // No need to locate/find the submit button element.submit(); // This code will print the page title System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
Korak 2) Pokrenite kod. Promatrat ćete da se preglednik ne pokreće i rezultati se prikazuju na konzoli.
Prednosti upravljačkog programa Html jedinice:
- Budući da ne koristi GUI za testiranje, vaši će se testovi izvoditi u pozadini bez ikakvog vizualnog prekida
- U usporedbi sa svim drugim instancama izvršenje je brže
- Za izvođenje testova putem upravljačkog programa HtmlUnit također možete odabrati druge verzije preglednika
-
Neovisan je o platformi i lakše je izvoditi nekoliko testova istovremeno. Idealno za Testiranje opterećenja.
Ograničenja:
- Ne može oponašati druge preglednike JavaPonašanje skripte
FantomJS
PhantomJS je bezglavi preglednik sa JavaAPI za skripte. To je optimalno rješenje za bezglavo testiranje web stranica, pristup i manipuliranje web stranicama i dolazi sa standardnim DOM API-jem.
Da biste koristili PhantomJS sa Seleniunom, morate koristiti GhostDriver. GhostDriver je implementacija Webdriver Wire protokola u jednostavnom JS-u za PhantomJS.
Najnovije izdanje PhatomJS ima integriran GhostDriver i nema potrebe da ga zasebno instalirate.
Evo kako sustav funkcionira -
Koraci za trčanje Selenium s PhatomJS
Korak 1) Trebate Eclipse s Selenium instaliran
Korak 2) Preuzmite PhantomJS ovdje
Korak 3) Raspakujte preuzetu mapu u programske datoteke
Korak 4) Preuzmite upravljački program PhantomJS s ovdje. Dodajte staklenku svom projektu
Korak 5) Zalijepite sljedeći kod u eclipse
package 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) { File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe"); System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); WebDriver driver = new PhantomJSDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Guru99"); element.submit(); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
Korak 6) Pokrenite kod. Vidjet ćete da se izlaz prikazuje u konzoli i da nijedan preglednik nije pokrenut.
BILJEŠKA: Prilikom prvog pokretanja, na temelju vaših postavki, možete dobiti sigurnosno upozorenje od Windows kako biste omogućili pokretanje PhantomJS-a. Pritisnite Dopusti pristup.
Mnoge organizacije koriste Phantom.JS za razne svrhe, na primjer,
- Bezglavo testiranje
- Screen Capture
- Automatizacija stranice
- Mrežno praćenje
- Za renderiranje snimaka zaslona nadzorne ploče za svoje korisnike
- Za pokretanje jediničnih testova na naredbenom retku
- Za generiranje priručnika za zaposlenike iz HTML-a u PDF
- U kombinaciji s QUnitom za testni paket
Rezime
Za brzo testiranje aplikacije u različitim preglednicima i bez vizualnog prekida, bezglavi preglednik Ispitivanje koristi se. Zbog svoje brzine, točnosti i jednostavnih značajki za pristup, upravljački program HTML jedinice i PhantomJS stječu popularnost za testiranje automatizacije preglednika bez glave. Slijedeći neke jednostavne korake saznat ćete kako se lako ovi alati mogu integrirati s drugim alatima i kako mogu izvršiti testni kod.