selenium grid tutorial
Introduktion till Selen Grid och hur man utför Cross Browser Testing med Selen Grid:
Vi är nu nära slutet på detta omfattande Selen-handledningsserier . Nästa vecka kommer vi att avsluta den här online-selenutbildningen med 'ansträngningsuppskattning av selenprojekt' och 'Selenintervjuer och svar' -handledning.
Idag, i denna handledning kommer vi att presentera dig med Selen Grid - a distribuerad testkörning miljö för att påskynda genomförandet av ett testpass. Lär dig hur du utför Cross-webbtestning med Selenium Grid.
Vad du kommer att lära dig:
- Vad är behovet av Selen Grid?
- Fördelar med Selen Grid
- Installera Selen GRID
- Webbläsare och noder
- maxInstances
- maxSession
- Exempel på nätkod
- Konfiguration med JSON-fil
- Slutsats
- Rekommenderad läsning
Vad är behovet av Selen Grid?
När du går igenom hela Selen WebDriver-handledning kommer du att upptäcka att WebDriver kommer att utföra dina testfall på en enda maskin.
Här är några problem med en sådan installation:
- Vad händer om du vill utföra dina testfall för olika operativsystem?
- Hur kör jag dina testfall i olika versioner av samma webbläsare?
- Hur kör jag dina testfall i flera webbläsare?
- Varför ska ett scenario vänta på genomförandet av andra testfall även om det inte beror på några testfall?
Alla dessa problem behandlas i Selen GRID.
När vi fortsätter med Selen-kursen får vi en idé om hur vi kan övervinna dessa problem. I grund och botten är Grid-arkitektur baserad på master-slave-arkitektur. Master machine distribuerar testfall till olika slavmaskiner.
Det finns två versioner av Grid. Selenium Grid 2.0 är det senaste från Selenium. Selenium 1.0 var den tidigare versionen. De flesta av Selen-experterna föredrar att använda Selenium Grid 2.0 eftersom den är full av nya funktioner. Selenium Grid 2.0 stöder både Selenium RC och Selen WebDriver-skript.
Rekommenderat verktyg:
# 1) LambdaTest
Utför Selen-automatiseringstestning på ett skalbart, säkert och pålitligt molnbaserat Selen-nät online. Påskynda din Selen-testautomation samtidigt öka din testtäckning genom att testa på en online-infrastruktur för 2000+ stationära och mobila webbläsarmiljöer.
Föreslagen läsning = >> Automatisera webbläsartestning med LambdaTest
Fördelar med Selen Grid
- Selenium Grid ger flexibiliteten att distribuera dina testfall för utförande.
- Minskar batchbehandlingstiden.
- Kan utföra flera webbläsartester.
- Kan utföra flera OS-test.
Grundläggande terminologi för selenät:
Nav : Hub är den centrala punkten i hela GRID-arkitekturen som tar emot alla förfrågningar. Det finns bara ett nav i selenätet. Hub distribuerar testfallet över varje nod.
Nod : Det kan finnas flera noder i rutnätet. Tester körs i noder. Varje nod kommunicerar med navet och utför test som tilldelats det.
Installera Selen GRID
Steg 1 : Ladda ner Selenium Server jar-fil från Seleniums officiella webbplats som tidigare kallades Selenium RC Server och spara den var som helst på den lokala disken.
URL för selen HQ: http://www.seleniumhq.org/download/
Steg 2 : Öppna kommandotolken och navigera till en mapp där servern finns. Kör servern med kommandot nedan
java -jar selen-server-fristående-2.41.0.jar -roll-nav
Hubben kommer att använda port 4444 som standard. Denna port kan ändras genom att skicka det olika portnumret i kommandotolken förutsatt att porten är öppen och inte har tilldelats någon uppgift.
Status kan kontrolleras med hjälp av webbgränssnittet: http: // localhost: 4444 / grid / console
Steg 3 : Gå till den andra maskinen där du tänker installera noder. Öppna kommandotolken och kör nedanstående rad.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Kör selen-servern i andra maskiner för att starta noder.
Webbläsare och noder
Efter att ha startat nav och noder på varje maskin när du navigerar till GRID Console
Du hittar 5 Chrome, 5 Firefox och 1 IE-webbläsare under webbläsarens avsnitt som nedan.
Detta indikerar att du som standard kan använda 5 Chrome, 5 Firefox och 1 IE-webbläsare.
Om du till exempel bara vill använda IE kan du starta noden med kommandot nedan:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Verifiera webbläsartypen tillsammans med andra detaljer i GRID Console genom att klicka på visa konfiguration .
På samma sätt för Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
För Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Det finns få scenarier där du kan behöva webbläsaren från varje typ, dvs .: IE, Chrome och Firefox.
Du kan till exempel behöva använda 1 IE och 1 Firefox och 1 Chrome-webbläsare
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 används för att begränsa antalet webbläsarinitiering i en nod.
Om du till exempel vill arbeta med 2 Firefox och 2 IE kan du starta noden med 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
Maximal instans kan verifieras under fliken konfiguration.
På samma sätt kan andra webbläsarinstanser konfigureras med maxInstances.
maxSession
maxSession används för att konfigurera hur många webbläsare som kan användas parallellt i fjärrsystemet.
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å samma sätt kan du starta flera noder och konfigurationen kan verifieras i konsolen.
NODE1:
NODE2:
Exempel på nätkod
Här har jag använt TestNG för att köra ett GRID-testfall.
Nödvändig förutsättning : Skapa Hub och noder som förklarats tidigare och TestNG ska konfigureras i förmörkelse.
Här har jag tagit ett provtest för att logga in på Gmail och ange användarnamn och lösenord
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 exemplet måste du använda RemoteWebDriver om du använder GRID och du måste tillhandahålla funktioner till webbläsaren. Du måste ställa in webbläsaren och plattformen enligt ovan.
ascii till int c ++
I det här exemplet har jag använt plattformen som WINDOWS. Du kan använda vilken plattform som helst enligt dina krav.
En version av webbläsaren kan också ställas in med dr.setVersion (“version”)
För tillfället måste du köra detta test seriellt i flera webbläsare, du måste konfigurera din testng.xml. Nedan är testng.XML-sviten för ovanstående test för att köra ditt test seriellt.
För att köra testet parallellt måste du ändra testng.xml som nedan.
Här i testng.XML måste du ange parametern som parallel = 'Test' och trådtäthet = '3' beskriver det maximala antalet trådar som ska utföras parallellt.
Konfiguration med JSON-fil
Rutnätet kan också startas tillsammans med dess konfiguration med hjälp av en JSON-konfigurationsfil.
Skapa en JSON-fil för att ha konfigurationen nedan. Här har jag skapat en JSON-fil som heter 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 }
Starta navet med kommandot nedan
java -jar selen-server-fristående-2.41.0.jar -roll-nav –hubConfig grid_hub.json
På samma sätt skapar du olika json-filer för olika noder enligt önskad konfiguration.
Här är ett exempel på JSON-konfigurationsfil för nod med namnet 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, } }
För att starta noden
java -jar selen-server-fristående-2.41.0.jar -role rc –nodeConfig grid_node.json
Du kan ändra alla konfigurationer för en webbläsare, maxInstances, port, maxSession etc. i JSON-filen.
Du kan tillhandahålla webbläsarversion, plattformen i JSON-konfigurationsfilen som nedan:
{
“BrowserName”: “chrome”, ”version”: ”8”, ”platform”: ”Windows”
}
Slutsats
Det är tillrådligt att använda Selenium Grid när du måste utföra flera webbläsartester och du har ett stort antal testfall.
I den här modulen behandlade vi hur man ställer in Grid-nav och noder tillsammans med hur man kör Grid-testfall med testng.XML- och JSON-filen.
Nästa handledning # 30 : Automatiseringstest med selen- och gurkaverktyg . Gurka är en BDD-testning verktyg och ramverk. Vi lär oss funktioner i gurkaverktyget och dess användning i realtidsscenarier inklusive hur man integrerar Selen WebDriver med Gurka .
Vänligen posta dina frågor relaterade till Selen Grid i kommentarerna nedan.
Rekommenderad läsning
- Docker Selen Tutorial: Hur man integrerar Selen Grid med Docker
- Automatiseringstestning med gurkaverktyg och selen - Selenhandledning # 30
- Gurka Selen Tutorial: Gurka Java Selen WebDriver Integration
- Spock för integration och funktionstestning med selen
- Fördjupade förklaringar om förmörkelser för nybörjare
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- Geb Tutorial - Browser Automation Testing med hjälp av Geb Tool
- Parrot QA Tutorial: Cross Browser Functional Testing Tool Review