selenium grid tutorial
Introduktion til Selen Grid og hvordan man udfører test på tværs af browsere ved hjælp af Selen Grid:
Vi er nu tæt på slutningen af dette omfattende Selenium-tutorials-serie . I næste uge vil vi afslutte denne online Selenium-træningsserie med 'indsatsestimering af Selen-projekter' og 'Selen Interview-spørgsmål og svar' -vejledninger.
I dag introducerer vi dig i denne tutorial Selenet - et distribueret testudførelse miljø for at fremskynde udførelsen af et testkort. Lær, hvordan du udfører test på tværs af browsere ved hjælp af Selenium Grid.
Hvad du lærer:
- Hvad er behovet for selenettet?
- Fordele ved selenet
- Installer Selenium GRID
- Browser og noder
- maxInstances
- maxSession
- Eksempel på gitterkode
- Konfiguration ved hjælp af JSON-fil
- Konklusion
- Anbefalet læsning
Hvad er behovet for selenettet?
Når du går igennem hele Selen WebDriver Tutorials du finder ud af, at WebDriver vil udføre dine testsager på en enkelt maskine.
Her er et par problemer med en sådan opsætning:
- Hvad hvis du vil udføre dine testsager til forskellige operativsystemer?
- Hvordan køres dine testcases i den forskellige version af den samme browser?
- Sådan køres dine testcases i flere browsere?
- Hvorfor skal et scenario vente på udførelse af andre testsager, selvom det ikke afhænger af nogen testsager?
Alle disse problemer behandles i Selen GRID.
Når vi går videre med Selen-kurset, får vi ideen om, hvordan vi kan løse disse problemer. Grundlæggende er gitterarkitektur baseret på master-slave-arkitektur. Master maskine distribuerer testcases til forskellige slave maskiner.
Der er 2 versioner af Grid til rådighed. Selen Grid 2.0 er den seneste fra Selen. Selen 1.0 var den tidligere version. De fleste af Selen-eksperterne foretrækker at bruge Selen Grid 2.0, da det er fyldt med nye funktioner. Selen Grid 2.0 understøtter både Selen RC og Selen WebDriver-scripts.
Anbefalet værktøj:
# 1) LambdaTest
Udfør Selen-automatiseringstest på et skalerbart, sikkert og pålideligt skybaseret Selenium-net online. Fremskynd din Selenium-testautomatisering på samme tid, øg din testdækning ved at teste på en online infrastruktur i 2000+ desktop- og mobilbrowsermiljøer.
Foreslået læsning = >> Automatiser browsertest med LambdaTest
=> Besøg LambdaTest-webstedet
Fordele ved selenet
- Selenium Grid giver fleksibiliteten til at distribuere dine testsager til udførelse.
- Reducerer batch-behandlingstid.
- Kan udføre multi-browser test.
- Kan udføre multi-OS test.
Grundlæggende terminologi af selenet:
Nav : Hub er det centrale punkt i hele GRID-arkitekturen, der modtager alle anmodninger. Der er kun et knudepunkt i selenet. Hub distribuerer testsagerne på tværs af hver node.
Node : Der kan være flere noder i Grid. Test køres i noder. Hver knude kommunikerer med hubben og udfører en test, der er tildelt den.
Installer Selenium GRID
Trin 1 : Download Selenium Server jar-fil fra Seleniums officielle websted, der tidligere var kendt som Selenium RC Server, og gem den hvor som helst på den lokale disk.
URL til selen HQ: http://www.seleniumhq.org/download/
Trin 2 : Åbn kommandoprompten, og naviger til en mappe, hvor serveren er placeret. Kør serveren ved hjælp af nedenstående kommando
java -jar selen-server-standalone-2.41.0.jar -role-hub
Hubben bruger som standard port 4444. Denne port kan ændres ved at sende det forskellige portnummer i kommandoprompten, forudsat at porten er åben og ikke er tildelt en opgave.
Status kan kontrolleres ved hjælp af webgrænsefladen: http: // localhost: 4444 / grid / console
Trin 3 : Gå til den anden maskine, hvor du vil konfigurere noder. Åbn kommandoprompten, og kør nedenstående linje.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Kør selen-serveren på andre maskiner for at starte noder.
Browser og noder
Efter start af hub og noder på hver maskine, når du navigerer til GRID Console
Du finder 5 Chrome, 5 Firefox og 1 IE-browser under browsersektionen som nedenfor.
Dette indikerer, at du som standard kan bruge 5 Chrome, 5 Firefox og 1 IE-browser.
For eksempel, hvis du kun vil bruge IE, kan du starte noden ved hjælp af kommandoen nedenfor:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Bekræft browsertypen sammen med andre detaljer i GRID Console ved at klikke på se config .
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
Til Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Der er få scenarier, hvor du muligvis har brug for browseren fra hver type, dvs.: IE, Chrome og Firefox.
For eksempel skal du muligvis bruge 1 IE og 1 Firefox og 1 Chrome-browser
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 bruges til at begrænse antallet af browserinitialisering i en node.
For eksempel, hvis du vil arbejde med 2 Firefox og 2 IE, kan du starte noden ved hjælp af 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
Maksimal forekomst kan bekræftes under fanen konfiguration.
Tilsvarende kan andre browserforekomster konfigureres ved hjælp af maxInstances.
maxSession
maxSession bruges til at konfigurere, hvor mange antal browsere der kan bruges parallelt i fjernsystemet.
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åde kan du starte flere noder, og konfiguration kan verificeres i konsollen.
NODE1:
NODE2:
Eksempel på gitterkode
Her har jeg brugt TestNG til at køre en prøve GRID test sag.
Forudsætning : Opret hub og noder som forklaret tidligere, og TestNG skal konfigureres i formørkelse.
Her har jeg taget en prøvetest for at logge ind på Gmail og indtaste brugernavn og adgangskode
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 skal du bruge RemoteWebDriver, hvis du bruger GRID, og du skal give kapaciteten til browseren. Du skal indstille browseren og platformen som ovenfor.
test cases eksempel til webapplikation
I dette eksempel har jeg brugt platformen som WINDOWS. Du kan bruge enhver platform efter dine krav.
En version af browseren kan også indstilles ved hjælp af dr.setVersion (“version”)
For eksempel skal du køre denne test serielt i flere browsere, du skal konfigurere din testng.xml. Nedenfor er testng.XML-pakken til ovenstående test for at køre din test serielt.
For at køre testen parallelt skal du ændre din testng.xml som nedenfor.
Her i testng.XML skal du angive parameteren som parllel = “Tests” og trådtælling = '3' beskriver det maksimale antal tråde, der skal udføres parallelt.
Konfiguration ved hjælp af JSON-fil
Gitteret kan også startes sammen med dets konfiguration ved hjælp af en JSON-konfigurationsfil.
Opret en JSON-fil for at have nedenstående konfiguration. Her har jeg oprettet en JSON-fil med navnet 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 hubben ved hjælp af nedenstående kommando
java -jar selen-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Tilsvarende skal du oprette forskellige json-filer til forskellige noder som krævet konfiguration.
Her er et eksempel på JSON-konfigurationsfil til node, der hedder 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, } }
For at starte noden
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Du kan ændre al konfiguration af en browser, maxInstances, port, maxSession osv. I JSON-filen.
Du kan levere browserversion, platformen i JSON-konfigurationsfilen som nedenfor:
{
'BrowserName': 'chrome', 'version': '8', 'platform': 'Windows'
}
Konklusion
Det tilrådes at brug Selenium Grid, når du skal udføre test af flere browsere, og du har et stort antal testsager.
I dette modul dækkede vi, hvordan du opretter Grid-hub og noder sammen med, hvordan du kører Grid-testsager ved hjælp af testng.XML- og JSON-filen.
Næste tutorial # 30 : Automatiseringstest med selen og agurk værktøj . Agurk er en BDD-test værktøj og Framework. Vi lærer funktionerne i agurkværktøjet og dets anvendelse i realtidsscenarier inklusive hvordan man integrerer Selen WebDriver med agurk .
Send dine forespørgsler vedrørende Selenium Grid i kommentarerne nedenfor.
Anbefalet læsning
- Docker Selen Tutorial: Sådan integreres Selen Grid med Docker
- Automatiseringstest ved hjælp af agurkværktøj og selen - Selen-tutorial # 30
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Spock til integration og funktionstest med selen
- Dybdegående formørkelsesvejledninger til begyndere
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Geb Tutorial - Browserautomatiseringstest ved hjælp af Geb Tool
- Parrot QA Tutorial: Cross Browser Functional Testing Tool Review