HTMLUnitDriver sisään Selenium: Headless Browser -opetusohjelma

⚡ Älykäs yhteenveto

HtmlUnitDriver on nopein headless-toteutus Selenium WebDriver, kun taas PhantomJS, aikoinaan suosittu GhostDriver-pohjainen headless-selain, on vanhentunut vuodesta 2018 lähtien ja korvattu nyt headless Chromella, headless Firefoxja Playwright nykyaikaisiin automaatiotyönkulkuihin.

  • 🤖 Päätön konsepti: ajaa Selenium testit ilman näkyvää graafista käyttöliittymää prosessorin, muistin ja suoritusajan säästämiseksi CI-putkissa.
  • ⚙️ HtmlUnitDriver-vahvuus: Puhdas Java moottori, ei ulkoista binääritiedostoa, ihanteellinen nopeisiin HTTP-tason tarkistuksiin ja nopeisiin lomakkeiden vuorovaikutuksiin.
  • 🚀 PhantomJS:n vanhentuminen: PhantomJS:n kehitys pysähtyi vuonna 2018; tiimien tulisi siirtyä headless Chromeen, headless-käyttöön. Firefox, tai näytelmäkirjailija.
  • Nykyaikaiset vaihtoehdot: Päätön kromi ja Firefox tarjota tarkkaa JavaSkriptien renderöinti, DevTools-protokolla ja parempi virheenkorjaus.
  • 🧪 Parhaat käyttötapaukset: Savutarkistukset, regressiopaketit, kuormitustestaukset ja jatkuvan integraation työt ilman käyttöliittymää olevilla Linux-ajojärjestelmillä.

HTMLUnitDriver sisään Selenium

Näytönohjainton selain on verkkoselain ilman graafista käyttöliittymää. Se voi toimia taustalla ilman visuaalista näyttöä.tracSe tarjoaa tehokkaan ja toimivan tavan testata verkkosovelluksia samalla säästäen aikaa ja resursseja. Tässä artikkelissa tutkimme, mikä on headless browser, milloin headless browser -testausta kannattaa käyttää ja miten se suoritetaan käyttämällä Selenium HtmlUnitDriver ja PhantomJS.

Mikä on headless-selain?

Headless-selain on verkkoselain ilman graafista käyttöliittymääTämä ohjelma toimii aivan kuten tavallinen selain, mutta se ei näytä graafista käyttöliittymää suorituksen aikana.

Joitakin esimerkkejä headless-selainohjaimista ovat:

  • Html-yksikkö
  • Aave
  • PhantomJS (vanhentunut)
  • ZombieJS
  • Watir- web-ajuri
  • Päätön Chrome
  • kannaton Firefox

Milloin käyttää päätöntä selaimen testausta?

Nykypäivän digitaalisella aikakaudella verkkosovellukset rakennetaan yhteensopiviksi monenlaisten laitteiden ja alustojen kanssa. Tämä luo haasteen kehittäjille, joiden on varmistettava, että heidän sovelluksensa toimivat saumattomasti eri ympäristöissä. Headless-selaintestaus on ihanteellinen ratkaisu, koska se antaa kehittäjille mahdollisuuden validoida verkkosovelluksiaan ilman graafista käyttöliittymää. Käyttämällä headless-selaintestausta kehittäjät voivat nopeasti kattaa monimutkaisia ​​verkkosovelluksia, joissa on monia komponentteja ja riippuvuuksia, mikä tasoittaa tietä nopeammalle kehitykselle, vähemmille virheille ja tyytyväisemmille käyttäjille.

Päättömän selaimen testaus Selenium

Selenium on tehokas työkalu selaimen testaukseen ilman pään avaamista, jonka avulla kehittäjät voivat suorittaa automatisoituja testejä ilman näkyvää käyttöliittymää. Suorittamalla testejä taustalla, Selenium säästää aikaa ja resursseja samalla auttaenping tunnistaa ongelmia, jotka eivät välttämättä ole ilmeisiä perinteisessä käyttöliittymäpohjaisessa testausympäristössä. Tämä sisältää suorituskykyyn ja ulkoasuun liittyviä ongelmia, jotka tulevat ilmi vain käyttöliittymättömässä ympäristössä. On kuitenkin tärkeää tasapainottaa käyttöliittymätön testaus perinteisten käyttöliittymäpohjaisten testien kanssa täyden kattavuuden varmistamiseksi.

Suosittuja esimerkkejä päättömistä selaimista

Saatavilla on useita selaimen toimintoja ilman pään asettamista (headless), joilla jokaisella on omat ominaisuutensa ja etunsa, jotka tekevät niistä sopivia erilaisiin käyttötapauksiin. Käsittelemme niitä alla.

PhantomJS

Vanhenemisilmoitus: PhantomJS:n aktiivinen kehitys loppui vuonna 2018, eikä projektia enää ylläpidetä. Uusien projektien tulisi suosia headless Chromea, headlessiä Firefoxtai Näytelmäkirjailija modernia headless-automaatiota varten. Alla oleva PhantomJS-esimerkki on vain viitteellinen.

PhantomJS on selain ilman grafiikkaa, joka käyttää WebKitiä renderöintimoottorinaan ja tukee web-standardeja, kuten HTML5, CSS3 ja ... JavaSkripti. Sitä voidaan käyttää näytön kaappaukseen ja sivujen automatisointitehtäviin. Se on avoimen lähdekoodin ja yhteensopiva useiden käyttöjärjestelmien kanssa.

Esimerkki Selenium jossa Headless PhantomJS sisään 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()

kromi

Chrome on planeetan suosituin selain ja tarjoaa myös headless-tilan. Sitä voidaan käyttää monilla alustoilla, ja se tukee suosittuja ohjelmointikieliä ja -kehyksiä. Sen sisäänrakennetut virheenkorjaustyökalut ja laaja dokumentaatio tekevät käytöstä ja testauksen aikana mahdollisesti ilmenevien ongelmien vianmäärityksestä helppoa.

Esimerkki Headless Chromesta 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 on suosittu verkkoselain, jota voidaan käyttää myös selaimena ilman näyttöä testausta varten. Yksi käytön eduista Firefox headless-selaimena sen kevyt koko tekee siitä monipuolisen vaihtoehdon testaukseen eri käyttöjärjestelmissä. Yhdessä laajan dokumentaation ja yhteisön tuen kanssa... Firefox on erinomainen valinta tiimeille, jotka kokeilevat headless-selaimen automaatiota.

Esimerkki päättömästä Firefox 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()

Päättömän selaimen testauksen edut

  • Nopeampi testin suorittaminen
  • Kustannustehokas testaus
  • Parempi testikattavuus
  • Joustavuus testien suorittamisessa
  • Helpompi integrointi CI/CD-putkistojen kanssa

Päättömän selaimen testauksen haitat

  • Näkyvän käyttöliittymän puute manuaalista tarkastusta varten
  • Virheenkorjaus voi olla vaikeampaa ilman näyttöä
  • Rajoitettu selainkohtainen toimintakattavuus

HTMLUnitDriver

HtmlUnitDriver on kevyin ja nopein toteutus selaimelle, joka ei käytä headless-toimintoa. Selenium WebDriver. Se perustuu HtmlUnit-elementtiin ja tunnetaan myös nimellä Päätön selainohjainSe toimii kuten Chrome, IE tai Firefox ajuri, mutta sillä ei ole graafista käyttöliittymää, joten testin suoritus ei näy näytöllä. HtmlUnitDriver-ajuria ylläpidetään edelleen ja se jaetaan org.seleniumhq.selenium:htmlunit3-driver Maven-artefakti.

HtmlUnitDriverin ominaisuudet:

  • Tuki HTTPS- ja HTTP-protokolloille
  • Tuki HTML-vastauksille (linkkien napsauttaminen, lomakkeiden lähettäminen, HTML-dokumentin DOM-mallin läpikäyminen ja paljon muuta)
  • Tuki evästeille
  • Välityspalvelimen tuki
  • Perus- ja NTLM-todennuksen tuki
  • Vankka JavaKäsikirjoitus tuki
  • Tuki GET- ja POST-lähetysmetodeille
  • Mahdollisuus mukauttaa palvelimelle lähetettävät pyyntöotsikot
  • Mahdollisuus hallita, pitäisikö palvelimen epäonnistuneiden vastausten aiheuttaa poikkeuksia vai palautetaanko ne sopivan tyyppisinä sivuina

HtmlUnitDriverin käyttöohjeet Selenium

Vaihe 1) In Eclipse, kopioi seuraava koodi. Lisää standardi Selenium kirjastotiedostot projektiin. Muita JAR-tiedostoja ei tarvita.

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 HtmlUnit 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();			
         }		
}

Vaihe 2) Suorita koodi. Huomaat, ettei selainta käynnistetä ja tulokset näkyvät konsolissa.

HtmlUnitDriverin käyttöohjeet Selenium

HtmlUnitDriverin edut

  • Koska se ei käytä graafista käyttöliittymää, testit toimivat taustalla ilman visuaalisia keskeytyksiä
  • Verrattuna muihin ajuri-instansseihin, suoritus on nopeampaa
  • Voit myös emuloida eri selainversioita, kun suoritat testejä HtmlUnitDriverin kautta.
  • Se on alustariippumaton ja sillä on helppo suorittaa useita testejä samanaikaisesti. Se on ihanteellinen kuormitustestaus.

Rajoitukset:

  • Se ei voi täysin jäljitellä JavaJokaisen oikean selainmoottorin skriptien käyttäytyminen

PhantomJS

Muistutus: PhantomJS on vanhentunut eikä sitä enää ylläpidetä. Uusiin funktiottomiin töihin käytä Selenium headless Chromella tai Firefox, tai siirry näytelmäkirjailijaksi. Alla oleva osio on tarkoitettu vain perintöviitteeksi.

PhantomJS on selain ilman näytöltä löytyviä tietoja, JavaScript API. Sitä käytettiin aiemmin funktiotonta verkkosivustojen testausta, verkkosivujen käyttöä ja käsittelyä varten, ja se toimitetaan vakiomuotoisen DOM API:n kanssa.

PhantomJS:n käyttö Selenium, tarvitset GhostDriverin. GhostDriver on WebDriver Wire Protocolin toteutus selkokielellä JavaPhantomJS:n skripti.

PhantomJS:n myöhemmät julkaisut integroitu GhostDriver, niin sitä ei tarvitse asentaa erikseen.

Näin järjestelmä toimii:

PhantomJS

Juoksun vaiheet Selenium PhantomJS:n kanssa

Vaihe 1) Tarvitset Eclipse Selenium asennettu.

Vaihe 2) Lataa PhantomJS täältä.

Juoksuvaiheet Selenium PhantomJS:n kanssa

Vaihe 3) ExtracTallenna ladattu kansio Program Files -kansioon.

Juoksuvaiheet Selenium PhantomJS:n kanssa

Vaihe 4) Lataa PhantomJS-ohjain osoitteesta täältäLisää JAR-tiedosto projektiisi.

Juoksuvaiheet Selenium PhantomJS:n kanssa

Vaihe 5) Liitä seuraava koodi sisään 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();			
           }		
}

Vaihe 6) Suorita koodi. Näet tulosteen konsolissa eikä selainta käynnisty.

HUOMAUTUS: Ensimmäisellä käyttökerralla saatat asetuksistasi riippuen nähdä suojausvaroituksen osoitteesta Windows salliaksesi PhantomJS:n suorittamisen. Napsauta Sallia pääsy.

Juoksuvaiheet Selenium PhantomJS:n kanssa

Monet organisaatiot ovat historiallisesti käyttäneet PhantomJS:ää tehtäviin, kuten:

  • Päätön testaus
  • Kuvakaappaus
  • Sivun automatisointi
  • Verkonvalvonta
  • Kojelaudan kuvakaappausten renderöinti käyttäjilleen
  • Yksikkötestien suorittaminen komentorivillä
  • Työntekijöiden käsikirjojen luominen HTML-tiedostosta PDF-muotoon
  • Yhdistäminen QUnitin kanssa testisarjaa varten

Uusia töitä varten korvaa nämä PhantomJS:n käyttötapaukset Chromella, joka ei käytä headless-toimintoa. Firefoxtai Playwright, jotka saavat jatkuvia tietoturva- ja renderöintipäivityksiä.

UKK

Näytönohjainton selain on verkkoselain, joka toimii ilman graafista käyttöliittymää. Selenium, headless-ajurit, kuten HtmlUnitDriver, headless Chrome ja headless-ajurit Firefox suorittaa testejä taustalla, mikä säästää resursseja ja nopeuttaa automaatiopaketteja.

Ei. PhantomJS:n kehitys keskeytettiin vuonna 2018, eikä projektia enää ylläpidetä. Selenium on myös poistanut PhantomJSDriverin viimeaikaisista julkaisuista. Uusien testien tulisi käyttää headless Chromea, headlessiä Firefoxtai sen sijaan näytelmäkirjailija.

HtmlUnitDriver on puhdas Java moottori, erittäin nopea, eikä tarvitse selainbinääriä, mutta sillä on rajoitetusti JavaSkriptin tarkkuus. Headless Chrome käyttää aitoa Blink-moottoria, joten se renderöi modernisti. JavaSkriptipainotteiset sivustot tarkasti, mutta resurssien käytön kustannuksella.

Käyttää Selenium headless Chromella tai headless-asennuksella Firefox selaintarkkoja testejä varten tai ottamaan käyttöön Playwrightin rinnakkaiseen selainten väliseen automatisointiin. Nämä työkalut saavat aktiivisia tietoturvapäivityksiä ja tukevat moderneja ominaisuuksia, kuten DevTools-protokollaa ja verkon sieppausta.

Tekoälyllä toimivat työkalut voivat automaattisesti korjata paikantimet, kun DOM muuttuu, ennustaa epätasaisia ​​testejä ja analysoida kuvakaappauksia visuaalisten regressioiden varalta. Tämä vähentää rikkinäisiä headless-testausajoja CI:ssä ja auttaa laadunvarmistustiimejä ylläpitämään vakautta. Selenium putkistot, joissa on vähemmän manuaalista käsittelyä.

Kyllä. Nykyaikaiset tekoälyavustajat voivat luoda Selenium WebDriver-skriptit Java, Pythontai JavaSkripti selkokielisistä vaiheista, mukaan lukien Chromelle tai muille selaimelle tarkoitetut headless-vaihtoehdot FirefoxTarkista aina luodun koodin oikeat odotusajat, valitsimet ja tietoturva ennen sen suorittamista CI:ssä.

Tiivistä tämä viesti seuraavasti: