Päätön selain Selenium (HTMLUnitDriver)
Päätön selain on verkkoselain ilman graafista käyttöliittymää. Se voi toimia taustalla ilman visuaalisia häiriötekijöitä. Se tarjoaa tehokkaan ja tehokkaan tavan testata verkkosovelluksia säästäen samalla aikaa ja resursseja. Tässä opetusohjelmassa sukeltaamme siihen, mikä päätön selain on, milloin käyttää päätöntä selaintestausta ja miten se tehdään Selenium.
Mikä on Headless Browser?
Päätön selain on verkkoselain ilman graafista käyttöliittymää. Tämä ohjelma toimii kuten selain, mutta se ei näytä graafista käyttöliittymää.
Joitakin esimerkkejä Headless Driversista ovat mm
- Html-yksikkö
- Aave
- PhantomJS
- ZombieJS
- Watir- web-ajuri
Milloin käyttää päätöntä selaimen testausta?
Nykypäivän digitaaliaikana verkkosovelluksia kehitetään yhteensopiviksi monenlaisten laitteiden ja alustojen kanssa. Tämä on usein haaste verkkosivustojen kehittäjille, joiden on varmistettava, että heidän sovelluksensa toimivat saumattomasti näillä alustoilla. Päätön selaintestaus on ihanteellinen ratkaisu tähän ongelmaan, koska sen avulla kehittäjät voivat testata verkkosovelluksiaan ilman graafista käyttöliittymää. Käyttämällä päätöntä selaintestausta kehittäjät voivat helposti testata monimutkaisia verkkosovelluksia, joissa on useita komponentteja ja riippuvuuksia, mikä avaa tietä nopeammalle kehitykselle, virheettömälle koodille ja tyytyväisille käyttäjille.
Päättömän selaimen testaus Selenium
Selenium on tehokas työkalu päättömään selaintestaukseen, jonka avulla kehittäjät voivat suorittaa automaattisia testejä ilman näkyvää käyttöliittymää. Suorittamalla testejä taustalla, Selenium voi säästää aikaa ja resursseja ja auttaa tunnistamaan ongelmia, jotka eivät välttämättä ole ilmeisiä perinteisessä käyttöliittymäpohjaisessa testausympäristössä. Tämä sisältää suorituskykyyn liittyviä ongelmia ja asetteluongelmia, jotka voivat tulla ilmeisiksi vain päättömässä ympäristössä. On kuitenkin tärkeää pitää mielessä päättömän testauksen rajoitukset ja tasapainottaa se perinteisten käyttöliittymäpohjaisten menetelmien kanssa kattavan testikattavuuden varmistamiseksi.
Suosittuja esimerkkejä päättömistä selaimista
Saatavilla on monia päättömiä selaimia, joista jokaisella on omat ainutlaatuiset ominaisuudet ja edut, joten ne sopivat erilaisiin käyttötapauksiin. Keskustelemme niistä alla: -
PhantomJS
PhantomJS on päätön selain, joka käyttää WebKitiä renderöintimoottorina ja tukee erilaisia verkkostandardeja, kuten HTML5, CSS3 ja JavaKäsikirjoitus. Sitä voidaan käyttää näytön kaappaamiseen 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 päättömän ominaisuuden. Sitä voidaan käyttää useilla alustoilla ja se tukee ohjelmointikieliä ja kehyksiä. Sen sisäänrakennetut virheenkorjaustyökalut ja kattava dokumentaatio tekevät siitä helpon käytön ja testauksen aikana ilmenevien ongelmien vianmäärityksen.
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 päättömänä selaimena testaustarkoituksiin. Yksi käytön eduista Firefox päättömänä selaimena on sen kevyt luonne, mikä tekee siitä monipuolisen vaihtoehdon testaukseen eri käyttöjärjestelmissä. Lisäksi laajan dokumentaation ja yhteisön tuen ansiosta Firefox on erinomainen valinta niille, jotka haluavat kokeilla päätöntä selaintekniikkaa.
Esimerkki päättömästä Firefox with 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 testauskattavuus
- Joustavuus testien suorittamisessa
- Integrointi CI/CD-putkistojen kanssa
Päättömän selaimen testauksen haitat
- GUI:n puute
- Vaikeuksia virheenkorjauksessa
- Rajoitettu selaintuki
HTMLUnitDriver
HTML UnitDriver on WebDriverin kevyin ja nopein toteutettu päätön selain. Se perustuu HtmlUnit. Se tunnetaan nimellä Päätön selainohjain. Se on sama kuin Chrome, IE tai FireFox ohjain, mutta siinä ei ole graafista käyttöliittymää, joten testin suorittamista ei voi nähdä näytöllä.
HTML-yksikköohjaimen ominaisuudet
- Tuki HTTPS- ja HTTP-protokolloille
- Tuki HTML-vastauksille (linkkien napsauttaminen, lomakkeiden lähettäminen, HTML-dokumentin DOM-mallin käyttäminen jne.)
- Tuki evästeille
- Välityspalvelimen tuki
- Perus- ja NTLM-todennuksen tuki
- Erinomainen JavaKäsikirjoitus tuki
- Tuki lähetysmenetelmille GET ja POST
- Mahdollisuus mukauttaa palvelimelle lähetettävät pyyntöotsikot
- Mahdollisuus määrittää, pitäisikö palvelimen epäonnistuneiden vastausten tehdä poikkeuksia vai onko ne palautettava oikeantyyppisinä sivuina
HTMLUnit-ohjaimen käytön vaiheet Selenium
Vaihe 1) In Eclipse, kopioi seuraava koodi. Lisää standardit seleenikirjastotiedostot projektiin. Ylimääräisiä 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 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(); } }
Vaihe 2) Suorita koodi. Huomaat, ettei selain käynnistetä ja tulokset näkyvät konsolissa.
Html-yksikköohjaimen edut:
- Koska se ei käytä testaukseen GUI:ta, testit suoritetaan taustalla ilman visuaalisia keskeytyksiä
- Verrattuna kaikkiin muihin esiintymiin suoritus on nopeampaa
- Suorittaaksesi testit HtmlUnit-ohjaimen kautta, voit myös valita muita selainversioita
-
Se on alustasta riippumaton ja helpompi suorittaa useita testejä samanaikaisesti. Ihanteellinen Kuormitustesti.
Rajoitukset:
- Se ei voi emuloida muita selaimia JavaKäsikirjoituksen käyttäytyminen
PhantomJS
PhantomJS on päätön selain JavaScript API. Se on optimaalinen ratkaisu päättömään verkkosivustojen testaukseen, verkkosivujen käyttämiseen ja manipulointiin, ja mukana tulee standardi DOM API.
PhantomJS:n käyttämiseksi Seleniunin kanssa täytyy käyttää GhostDriveria. GhostDriver on Webdriver Wire -protokollan toteutus yksinkertaisessa JS:ssä PhantomJS:lle.
PhatomJS:n uusin julkaisu on integroitu GhostDriver ja sitä ei tarvitse asentaa erikseen.
Näin järjestelmä toimii -
Askeleita juoksemiseen Selenium PatomJS:n kanssa
Vaihe 1) Tarvitset Eclipse with Selenium asennetaan
Vaihe 2) Lataa PhantomJS tätä
Vaihe 3) Pura ladattu kansio Ohjelmatiedostoihin
Vaihe 4) Lataa PhantomJS-ohjain osoitteesta tätä. Lisää purkki projektiisi
Vaihe 5) Liitä seuraava koodi eclipseen
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. Huomaat, että tulos näkyy konsolissa eikä selainta käynnistetä.
HUOMAUTUS: Ensimmäisellä käyttökerralla saatat saada suojausvaroituksen asetustesi perusteella Windows salliaksesi PhantomJS:n suorittamisen. Napsauta Salli pääsy.
Monet organisaatiot käyttävät Phantom.JS:ää eri tarkoituksiin, esim.
- Päätön testaus
- screen Capture
- Sivun automaatio
- Verkonvalvonta
- Renderöidäkseen hallintapaneelin kuvakaappauksia käyttäjilleen
- Yksikkötestien suorittaminen komentorivillä
- Luoda työntekijöiden käsikirjoja HTML:stä PDF-muotoon
- Yhdessä QUnitin kanssa testisarjaa varten
Yhteenveto
Sovelluksen testaamiseen nopeasti eri selaimissa ja ilman visuaalista keskeytystä, päätön selain Testaus käytetään. Nopeutensa, tarkkuutensa ja helppokäyttöisten ominaisuuksiensa ansiosta HTML-yksikköohjain ja PhantomJS ovat saamassa suosiota päättömässä selaimen automaatiotestauksessa. Noudattamalla joitain yksinkertaisia ohjeita saat tietää, kuinka helposti nämä työkalut voidaan integroida muihin työkaluihin ja suorittaa testikoodin.