selenium grid tutorial
Introduksjon til Selen Grid og hvordan du utfører tester i flere nettlesere ved hjelp av Selen Grid:
Vi er nå nær slutten av dette omfattende Selenium-opplæringsserier . Neste uke vil vi avslutte denne online Selenium-opplæringsserien med veiledning om “anstrengelsesestimering av selenprosjekter” og “Selenintervju og spørsmål.
I dag, i denne opplæringen, vil vi introdusere deg for Selenett - a distribuert testutførelse miljø for å øke hastigheten på gjennomføringen av et testkort. Lær hvordan du utfører tvers av nettlesere ved hjelp av Selenium Grid.
Hva du vil lære:
- Hva er behovet for selenettet?
- Fordelene med selenett
- Installer Selen GRID
- Nettleser og noder
- maxInstances
- maxSession
- Eksempel på rutenettkode
- Konfigurasjon ved hjelp av JSON File
- Konklusjon
- Anbefalt lesing
Hva er behovet for selenettet?
Når du går gjennom hele Selen WebDriver Tutorials vil du finne ut at WebDriver vil utføre testsakene dine på en enkelt maskin.
Her er noen problemer med et slikt oppsett:
- Hva om du vil utføre testsakene dine for forskjellige operativsystemer?
- Hvordan kjører testsakene dine i den forskjellige versjonen av samme nettleser?
- Hvordan kjører testsakene dine i flere nettlesere?
- Hvorfor skal et scenario vente på gjennomføring av andre testsaker, selv om det ikke er avhengig av noen testsaker?
Alle disse problemene er adressert i Selen GRID.
Når vi fortsetter med Selen-kurset, vil vi få ideen om hvordan vi kan løse disse problemene. I utgangspunktet er Grid-arkitektur basert på master-slave-arkitektur. Master machine distribuerer testsaker til forskjellige slave-maskiner.
Det er to versjoner av Grid tilgjengelig. Selenium Grid 2.0 er det siste fra Selen. Selen 1.0 var den tidligere versjonen. De fleste av Selen-ekspertene foretrekker å bruke Selen Grid 2.0 ettersom den er fullpakket med nye funksjoner. Selenium Grid 2.0 støtter både Selen RC og Selen WebDriver-skript.
Anbefalt verktøy:
#1) LambdaTest
Utfør Selenium-automatiseringstesting på et skalerbart, sikkert og pålitelig skybasert Selenium Grid online. Akselerere Selenium-testautomatiseringen din samtidig øke testdekningen ved å teste på en online infrastruktur for 2000+ stasjonære og mobile nettlesermiljøer.
Foreslått lesing = >> Automatiser nettlesertesting med LambdaTest
Fordelene med selenett
- Selenium Grid gir fleksibilitet til å distribuere testsakene dine for utførelse.
- Reduserer batch behandlingstid.
- Kan utføre tester med flere nettlesere.
- Kan utføre multi-OS-testing.
Grunnleggende terminologi av selenett:
Hub : Hub er det sentrale punktet i hele GRID Architecture som mottar alle forespørsler. Det er bare ett knutepunkt i selenettet. Hub distribuerer testtilfellene over hver node.
Node : Det kan være flere noder i Grid. Testene kjøres i noder. Hver node kommuniserer med huben og utfører en test som er tilordnet den.
Installer Selen GRID
Trinn 1 : Last ned Selenium Server jar-fil fra Seleniums offisielle nettside, tidligere kjent som Selenium RC Server, og lagre den hvor som helst på den lokale disken.
URL til selen HQ: http://www.seleniumhq.org/download/
Steg 2 : Åpne ledeteksten og naviger til en mappe der serveren befinner seg. Kjør serveren ved å bruke kommandoen nedenfor
java -jar selen-server-frittstående-2.41.0.jar -roll-hub
Navet vil bruke port 4444 som standard. Denne porten kan endres ved å sende det forskjellige portnummeret i ledeteksten, forutsatt at porten er åpen og ikke har fått noen oppgave.
Status kan kontrolleres ved hjelp av webgrensesnittet: http: // localhost: 4444 / grid / konsoll
Trinn 3 : Gå til den andre maskinen der du har tenkt å konfigurere noder. Åpne ledeteksten og kjør linjen nedenfor.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Kjør selen-serveren i andre maskiner for å starte noder.
Nettleser og noder
Etter at du har startet hub og noder på hver maskin når du navigerer til GRID Console
Du finner 5 Chrome, 5 Firefox og 1 IE-nettleser under nettleserdelen som nedenfor.
Dette indikerer at du som standard kan bruke 5 Chrome, 5 Firefox og 1 IE-nettleser.
For eksempel, hvis du bare vil bruke IE, kan du starte noden ved å bruke kommandoen nedenfor:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Bekreft nettlesertypen sammen med andre detaljer i GRID Console ved å klikke på vis konfigur .
Tilsvarende for Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
For Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Det er få scenarier der du kanskje trenger nettleseren fra hver type, dvs.: IE, Chrome og Firefox.
For eksempel kan det hende du må bruke 1 IE og 1 Firefox og 1 Chrome-nettleser
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstance brukes til å begrense antall initialisering av nettleser i en node.
Hvis du for eksempel vil jobbe med 2 Firefox og 2 IE, kan du starte noden ved hjelp av maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
Maksimum forekomst kan bekreftes under fanen Konfigurasjon.
På samme måte kan andre nettleserforekomster konfigureres ved hjelp av maxInstances.
maxSession
maxSession brukes til å konfigurere hvor mange nettlesere som kan brukes parallelt i det eksterne systemet.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
På samme måte kan du starte flere noder, og konfigurasjonen kan verifiseres i konsollen.
NODE1:
NODE2:
Eksempel på rutenettkode
Her har jeg brukt TestNG til å kjøre en prøve GRID test case.
Forutsetning : Opprett hub og noder som forklart tidligere, og TestNG skal konfigureres i formørkelse.
Her har jeg tatt en prøvetest for å logge på Gmail og skrive inn brukernavn og passord
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Som i eksemplet, må du bruke RemoteWebDriver hvis du bruker GRID, og du må gi nettleseren muligheter. Du må stille inn nettleseren og plattformen som ovenfor.
test tilfeller for webapplikasjon i manuell testing
I dette eksemplet har jeg brukt plattformen som WINDOWS. Du kan bruke hvilken som helst plattform i henhold til dine krav.
En versjon av nettleseren kan også angis ved å bruke dr.setVersion (“versjon”)
For eksempel må du kjøre denne testen serielt i flere nettlesere. Du må konfigurere testng.xml. Nedenfor er testng.XML-pakken for ovennevnte test for å kjøre testen seriell.
For å kjøre testen parallelt, må du endre testng.xml som nedenfor.
Her i testng.XML må du spesifisere parameteren som parllel = “Tester” og trådtelling = '3' beskriver maksimalt antall tråder som skal utføres parallelt.
Konfigurasjon ved hjelp av JSON File
Rutenettet kan også lanseres sammen med konfigurasjonen ved hjelp av en JSON-konfigurasjonsfil.
Opprett en JSON-fil for å ha konfigurasjonen nedenfor. Her har jeg opprettet en JSON-fil kalt grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Start navet ved hjelp av kommandoen nedenfor
java -jar selen-server-frittstående-2.41.0.jar -role-hub –hubConfig grid_hub.json
På samme måte kan du opprette forskjellige json-filer for forskjellige noder i henhold til ønsket konfigurasjon.
Her er et eksempel på JSON-konfigurasjonsfil for noden som heter grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Å starte noden
java -jar selen-server-frittstående-2.41.0.jar -role rc –nodeConfig grid_node.json
Du kan endre all konfigurasjon av en nettleser, maxInstances, port, maxSession etc. i JSON-filen.
Du kan tilby nettleserversjon, plattformen i JSON-konfigurasjonsfilen som nedenfor:
{
“BrowserName”: “chrome”, ”version”: ”8”, ”platform”: ”Windows”
}
Konklusjon
Det anbefales å bruk Selen Grid når du må utføre tester i flere nettlesere, og du har et stort antall testsaker.
I denne modulen dekket vi hvordan du setter opp Grid-hub og noder sammen med hvordan du kjører Grid-testtilfeller ved hjelp av testng.XML- og JSON-filen.
Neste opplæring # 30 : Automatiseringstesting med Selen og agurkverktøy . Agurk er en BDD-testing verktøy og Framework. Vi lærer funksjonene til agurkverktøyet og dets bruk i sanntidsscenarier, inkludert hvordan du integrerer Selen WebDriver med agurk .
Vennligst legg inn spørsmålene dine relatert til Selen Grid i kommentarene nedenfor.
Anbefalt lesing
- Docker Selenium Tutorial: Hvordan integrere selenett med Docker
- Automatiseringstesting ved hjelp av agurkverktøy og selen - Selenveiledning nr. 30
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Spock for integrering og funksjonstesting med selen
- In-Depth Eclipse Tutorials For Beginners
- Introduksjon til Selen WebDriver - Selenium Tutorial # 8
- Geb Tutorial - Browser Automation Testing Using Geb Tool
- Parrot QA Tutorial: Cross Browser Functional Testing Tool Review