what is headless browser
Denna handledning förklarar vad som är en Headless Browser, dess fördelar, exempel och Headless Browser Testing med Selen. Du kommer också att lära dig mer om HtmlUnitDrvier:
Under de senaste åren har vi sett webben utvecklas från enkla till mycket avancerade webbplatser byggda med vackra användargränssnitt. Kort sagt, nuförtiden kontrollerar JavaScript webben extremt bra så att den kan hantera nästan alla interaktioner på webbplatser.
Idag kan vi se att webbläsarna är så effektiva att de enkelt kan förstå hur man bearbetar JavaScript. I samordning med JavaScript tas en webbläsare om hand programmatiskt. Headless webbläsare anses vara mycket användbara för webbläsartestning eftersom de förbättrar våra ansträngningar.
hur man testar webbtjänster manuellt
Vad du kommer att lära dig:
- Vad är en huvudlös webbläsare?
- Slutsats
Vad är en huvudlös webbläsare?
Headless - Åh Ja, du läste det rätt. Headless, betyder en webbläsare utan användargränssnitt. För att utarbeta är huvudlösa webbläsare de som faktiskt går till webbsidan, men GUI är dolt för användaren.
En huvudlös webbläsare är precis som alla andra webbläsare, den enda skillnaden är att vi inte kan se något på skärmen. Här kan vi säga att programmet faktiskt körs i backend och ingenting kan visas på skärmen. Således är det känt att det är ett utan huvud / GUI.
Precis som en vanlig webbläsare utför en huvudlös webbläsare alla funktioner som att klicka på länkar, navigera på sidor, ladda ner dokumentet, ladda upp ett dokument etc. genom att utföra alla instruktioner enligt vårt program.
En normal webbläsare fortsätter med varje steg i programmet med en GUI-presentation, medan för en huvudlös webbläsare utförs alla steg i programmet sekventiellt och korrekt och vi kan hålla reda på det med hjälp av en konsol eller kommando- linje gränssnitt.
Fördelar med huvudlös webbläsare
# 1) Huvudlösa webbläsare används när maskinen inte har något GUI, det vill säga när du använder Linux (ett operativsystem utan GUI) körs via kommandoradsgränssnittet och har faktiskt inget gränssnitt att visa.
#två) Dessa kan också användas i ett fall där det inte finns något behov av att se någonting och vårt syfte är bara att se till att alla tester utförs framgångsrikt rad för rad.
# 3) När det finns behov av att utföra parallella tester förbrukar UI-baserade webbläsare mycket minne och / eller resurser. Därför är här Headless webbläsare att föredra att använda.
# 4) Om vi vill utföra regressionstestning för de kommande utgåvorna med kontinuerlig integrering och vi är klara med testning av webbläsare, kan testning utan webbläsare användas.
# 5) Om vi vill simulera flera webbläsare på en enda maskin eller köra testfall bara för att skapa data, använder vi Headless Browsers.
# 6) Jämfört med riktiga webbläsare är huvudlösa webbläsare snabbare. Så dessa väljs för snabbare körning.
Nackdelar med huvudlös webbläsare
# 1) Även om huvudlösa webbläsare är mycket snabba, finns det fortfarande några nackdelar också. På grund av dess snabbare sidladdningsförmåga är det ibland svårt att felsöka problemen.
#två) Real Browser Testing inkluderar att utföra testfall i närvaro av GUI. Dessa tester utförs också framför användaren, varför användaren kan interagera med teamet, hänvisa till GUI och diskutera var som helst ändringar eller korrigeringar krävs. I ett sådant fall kan headless webbläsare inte användas.
# 3) Eftersom Headless Browsers inte representerar GUI är det besvärligt att rapportera fel med hjälp av skärmdumpar. En riktig webbläsare hjälper till att presentera defekterna genom att skapa skärmdumpar eftersom skärmdumpar är ett måste för testning.
# 4) Om det krävs en hel del webbläsarfelsökning kan det vara svårt att använda Headless Browsers.
Exempel på huvudlösa webbläsare
Det finns olika huvudlösa webbläsare tillgängliga.
Nedan finns några exempel:
- Html-enhetens webbläsare
- Firefox
- Krom
- PhantomJS
- Zombie.js
- TrifleJS
- SlimerJS
- Stänk
- SimpleBrowser
- NodeJS
Huvudlös testning med selen
Selen är ett gratis testverktyg med öppen källkod. Det är ett ganska känt och effektivt automatiseringsverktyg för att utföra automatiseringstester.
Selen tillåter oss att skriva testskript på olika språk som Java, Python, C #, Ruby, Perl, Scala, etc. genom att stödja många webbläsare som Firefox, Chrome, Internet Explorer, Opera, Safari, etc. och kan köras på Windows , Linux och macOS.
Selenium Webdriver ger bra stöd till dynamiska webbsidor, där olika webbelement ändras utan att själva sidan laddas om.
Headless Chrome och Firefox
Både Firefox och Chrome-webbläsare stöder headless automatiseringstestning som är en implementering av koden i Firefox och Chrome utan GUI.
hur man använder diff-kommandot för att jämföra två filer
Headless Firefox Exempel
Headless Firefox ger stöd för versioner som börjar 56 och finns på Windows, Linux och macOS. Vi måste ladda ner filen geckodriver.exe med den senaste versionen av Firefox och se till att versionen vi kommer att använda är större än den minsta version som stöds. Firefox körs i headless-läge via metoden headless ().
Låt oss se koden för Firefox-webbläsaren i huvudlöst läge:
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()); } }
När du utför koden ovan för Firefox-webbläsaren i huvudlöst läge visas titeln på sidan och dess URL. Koden körs i Headless-läge och kan spåras på konsolen.
Precis som Headless Firefox stöds av Selenium, körs det också på SlimmerJS och W3C WebDrier.
Headless Chrome Exempel
Headless Chrome ger stöd för Chrome-versioner 60 och framåt och är tillgänglig för Windows, Linux och macOS. Vi måste ladda ner .exe-filen för den senaste versionen av Chrome-webbläsaren.
Nedan följer syntaxen för att använda Chrome i Headless-läge:
ChromeOptions options = new ChromeOptions(); options.addArguments(“--headless”); OR options.setHeadless(true);
Låt oss se koden för Chrome Browser i huvudlöst läge:
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()); } }
När du utför koden ovan för Chrome-webbläsaren i huvudlöst läge visas sidans titel och dess URL. Koden körs och körningen kan spåras på konsolen.
Headless HtmlUnitDriver
Vad är HtmlUnitDriver?
HtmlUnitDriver är en huvudlös webbläsare skriven i Java. Namnet antyder att det är en huvudlös drivrutin som är baserad på HtmlUnit. HtmlUnitDriver är en inbyggd huvudlös webbläsare i Selenium WebDriver. Det anses vara de mest lätta och snabba webbläsarna.
Låt oss gå vidare till implementeringen av HtmlUnitDriver. HtmlUnitDriver JAR-filerna kan laddas ned från den officiella webbplatsen för Selenium.
insättningssortering i c ++
HtmlUnitDriver i huvudlöst läge
Precis som alla andra webbläsare, för HtmlUnitDriver också, måste vi skapa ett objekt för klassen för att köra koden i headless-läge.
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()); } }
Således vid körning av ovanstående kod för HtmlUnitDriver i Headless-läge visar den mottagna utgången sidans titel och dess URL. Utgången tas emot via konsolen där alla funktioner som utförs i programmet kan ses stegvis.
Nedan visas skärmdumpen av den ovan utförda koden:
Funktioner / fördelar med HtmlUnitDriver
(bild källa )
- Ger stöd för HTTPS- och HTTP-protokoll.
- Bra stöd för JavaScript.
- Hjälper till vid multitasking, vilket gör det möjligt att köra flera tester.
- Ger stöd för kakor. Stöder också proxyservrar.
- Förbättrar prestanda och hastighet för testskript, eftersom det har den snabbaste implementeringen av WebDriver.
- HtmlUnitDriver är plattformsoberoende.
- Eftersom det är Headless som standard stöder det Headless Testing.
Nackdelar med HtmlUnitDriver
- Användning av HtmlUnitDriver är inte möjlig för komplexa webbplatser.
- Medan man jämför med en riktig webbläsartestning, för headless webbläsare som HtmlUnitDriver, blir det mycket svårt att felsöka skriptet.
- Generering av skärmdumpar är inte möjlig med HtmlUnitDriver.
- Headless Browsers emulerar andra webbläsare.
Slutsats
Headless Browser-testning är faktiskt snabbare, genom att ge hög hastighet och effektivitet men det misslyckas med att nå ut till några specifika funktioner som verkligen uppfylls av en icke-Headless / Real Browsers.
Headless Browser har sina egna fördelar medan Real Browser har sina egna. Enligt testbehovet kan man välja vilken teknik som är föredragen och fördelaktig för testaren.
Till exempel: Om det finns användarinblandning kan testning av riktiga webbläsare väljas. Om det inte finns några UI-presentationskrav för att utföra testningen snabbt kan man gå till Headless Browser-testning.
Mer effektiv testning skulle vara den med en kombination av både Headless och Real Browser. Därigenom övervinna begränsningarna för varje individuellt.
Hoppas att den här guiden skulle ha förtydligat alla dina frågor om Headless Browser & Headless Browser Testing !!
Rekommenderad läsning
- Geb Tutorial - Browser Automation Testing med hjälp av Geb Tool
- Parrot QA Tutorial: Cross Browser Functional Testing Tool Review
- Browserstack Tutorial: App- och webbläsartestplattform (GUIDE)
- IE Tester Tutorial - Internet Explorer Browser Testing Online
- Lasttestning med riktiga webbläsare som använder Tricentis Flood Element
- Selen Grid Tutorial: Installation och exempel på testning av webbläsare
- Topp 10 testverktyg för webbläsare 2021 (senaste rankning)
- Vad är Cross Browser Testing och hur man utför det: En komplett guide