selenium grid tutorial
Introducció a Selenium Grid i com realitzar proves de navegadors creuats mitjançant Selenium Grid:
Ara estem a prop del final sèrie completa de tutorials de Selenium . La setmana vinent conclourem aquesta sèrie de formació en línia amb Selenium amb tutories sobre 'estimació de l'esforç dels projectes de Selenium' i 'Preguntes i respostes de l'entrevista Selenium'.
Avui, en aquest tutorial us presentarem Xarxa de seleni: a execució de proves distribuïdes entorn per accelerar l'execució d'una passada de prova. Obteniu informació sobre com es realitzen proves de navegadors creuats mitjançant Selenium Grid.
Què aprendreu:
- Quina és la necessitat de la xarxa de seleni?
- Beneficis de la xarxa de seleni
- Instal·leu Selenium GRID
- Navegador i nodes
- maxInstances
- maxSession
- Codi de quadrícula de mostra
- Configuració mitjançant el fitxer JSON
- Conclusió
- Lectura recomanada
Quina és la necessitat de la xarxa de seleni?
A mesura que avança tot Tutorials de Selenium WebDriver esbrinarà que WebDriver executarà els casos de prova en una sola màquina.
Aquí teniu alguns problemes amb aquesta configuració:
- Què passa si voleu executar els vostres casos de prova per a diferents sistemes operatius?
- Com s'executen els casos de prova en les diferents versions del mateix navegador?
- Com s'executen els casos de prova en diversos navegadors?
- Per què un escenari hauria d'esperar a l'execució d'altres casos de prova, encara que no depengui de cap cas de prova?
Tots aquests problemes s’aborden a Selenium GRID.
A mesura que continuem amb el curs Selenium, tindrem la idea de com superar aquests problemes. Bàsicament, l'arquitectura de quadrícula es basa en l'arquitectura mestre-esclau. La màquina principal distribueix casos de prova a diferents màquines esclaus.
Hi ha dues versions de Grid disponibles. Selenium Grid 2.0 és l’últim de Selenium. Selenium 1.0 era la versió anterior. La majoria dels experts en Selenium prefereixen utilitzar Selenium Grid 2.0, ja que està ple de noves funcions. Selenium Grid 2.0 admet els scripts Selenium RC i Selenium WebDriver.
Eina recomanada:
# 1) LambdaTest
Realitzeu proves d'automatització de Selenium en una xarxa de Selenium Grid basada en núvol escalable, segura i fiable en línia. Accelereu l’automatització de les proves Selenium alhora, augmenteu la cobertura de les proves provant en una infraestructura en línia de més de 2000 entorns d’escriptori i navegador mòbil.
Lectura suggerida = >> Automatitzeu les proves del navegador amb LambdaTest
Beneficis de la xarxa de seleni
- Selenium Grid proporciona la flexibilitat per distribuir els casos de prova per a la seva execució.
- Redueix el temps de processament per lots.
- Pot realitzar proves amb diversos navegadors.
- Pot realitzar proves amb sistemes operatius múltiples.
Terminologia bàsica de la xarxa de seleni:
Hub : Hub és el punt central de tota l'arquitectura GRID que rep totes les sol·licituds. Només hi ha un hub a la xarxa de seleni. Hub distribueix els casos de prova per cada node.
Node : Hi pot haver diversos nodes a la quadrícula. Les proves s’executaran en nodes. Cada node es comunica amb el Hub i realitza les proves que se li assignen.
Instal·leu Selenium GRID
Pas 1 : Descarregueu el fitxer jar de Selenium Server des del lloc web oficial de Selenium, que abans es coneixia com a Selenium RC Server i deseu-lo en qualsevol lloc del disc local.
URL de la seu central de seleni: http://www.seleniumhq.org/download/
Pas 2 : Obriu el símbol del sistema i aneu a una carpeta on es troba el servidor. Executeu el servidor mitjançant l'ordre següent
java -jar selenium-server-standalone-2.41.0.jar -role hub
El concentrador utilitzarà el port 4444 per defecte. Aquest port es pot canviar passant el número de port diferent a l'indicador d'ordres sempre que el port estigui obert i no se li hagi assignat cap tasca.
Es pot comprovar l’estat mitjançant la interfície web: http: // localhost: 4444 / grid / console
Pas 3 : Aneu a l’altra màquina on voleu configurar Nodes. Obriu el símbol del sistema i executeu la línia següent.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Executeu el servidor de seleni en altres màquines per iniciar nodes.
Navegador i nodes
Després d'iniciar el concentrador i els nodes de cada màquina, aneu a la consola GRID
Trobareu 5 navegadors Chrome, 5 Firefox i 1 IE a la secció del navegador com a continuació.
Això indica que per defecte podeu utilitzar 5 navegadors Chrome, 5 Firefox i 1 IE.
Per exemple, si voleu utilitzar només IE, podeu iniciar el node mitjançant l'ordre següent:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Feu clic a Verifiqueu el tipus de navegador juntament amb altres detalls a GRID Console visualitza la configuració .
De manera similar per a Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Per a Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Hi ha pocs casos en què pugueu necessitar el navegador de cada tipus, és a dir: IE, Chrome i Firefox.
Per exemple, és possible que hàgiu d'utilitzar 1 IE i 1 Firefox i 1 navegador Chrome
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 s'utilitza per limitar el nombre d'inicialització del navegador en un node.
Per exemple, si voleu treballar amb 2 Firefox i 2 IE, podeu iniciar el node amb 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
La instància màxima es pot verificar a la pestanya de configuració.
De la mateixa manera, es poden configurar altres instàncies del navegador mitjançant maxInstances.
maxSession
maxSession s'utilitza per configurar el nombre de navegadors que es poden utilitzar paral·lelament al sistema remot.
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
De la mateixa manera, podeu iniciar diversos nodes i es pot verificar la configuració a la consola.
NODE1:
NODE2:
Codi de quadrícula de mostra
Aquí he utilitzat TestNG per executar un cas de prova de GRID de mostra.
Requisit previ : Creeu Hub i nodes tal com s'ha explicat anteriorment i TestNG s'hauria de configurar en eclipsi.
Aquí he fet una prova de mostra per iniciar la sessió a Gmail i introduir el nom d'usuari i la contrasenya
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(); }
Com a l'exemple, heu d'utilitzar RemoteWebDriver si utilitzeu el GRID i heu de proporcionar funcions al navegador. Heu d’establir el navegador i la plataforma de la manera anterior.
plantilla d'informe de resum de proves a Excel
En aquest exemple, he utilitzat la plataforma com WINDOWS. Podeu utilitzar qualsevol plataforma segons el vostre requisit.
També es pot configurar una versió del navegador mitjançant dr.setVersion ('versió')
Per exemple, heu d'executar aquesta prova en sèrie en diversos navegadors, heu de configurar el testng.xml.
Per executar la prova en paral·lel, heu de canviar el testng.xml com es mostra a continuació.
Aquí al testng.XML heu d’especificar el paràmetre com a parllel = 'Proves' i recompte de fils = '3' descriu el nombre màxim de fils a executar en paral·lel.
Configuració mitjançant el fitxer JSON
La quadrícula també es pot iniciar juntament amb la seva configuració mitjançant un fitxer de configuració JSON.
Creeu un fitxer JSON per tenir la configuració següent. Aquí he creat un fitxer JSON anomenat 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 }
Inicieu el concentrador mitjançant l'ordre següent
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
De la mateixa manera, creeu un fitxer json diferent per a nodes diferents segons la configuració necessària.
Aquí teniu un exemple de fitxer de configuració JSON per al node anomenat 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, } }
Per iniciar el node
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Podeu canviar tota la configuració d'un navegador, maxInstances, port, maxSession, etc. al fitxer JSON.
Podeu proporcionar la versió del navegador, la plataforma del fitxer de configuració JSON com es mostra a continuació:
{
'BrowserName': 'chrome', 'version': '8', 'platform': 'Windows'
}
Conclusió
És aconsellable utilitzeu Selenium Grid quan hagueu de fer proves amb diversos navegadors i tingueu un gran nombre de casos de proves.
En aquest mòdul, hem explicat com configurar el hub i els nodes de Grid juntament amb com executar casos de prova de Grid mitjançant el fitxer testng.XML i JSON.
Pròxim tutorial núm. 30 : Proves d'automatització amb eina Selenium i Cucumber . Cogombre és una prova de BDD eina i Marc. Aprendrem les característiques de l'eina Cogombre i el seu ús en escenaris en temps real, inclosos com integrar Selenium WebDriver amb Cogombre .
Envieu les vostres consultes relacionades amb Selenium Grid als comentaris següents.
Lectura recomanada
- Tutorial Docker Selenium: Com integrar Selenium Grid amb Docker
- Proves d'automatització mitjançant l'eina Cucumber i Selenium - Tutorial Selenium # 30
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Spock per a la integració i proves funcionals amb seleni
- Tutorials Eclipse en profunditat per a principiants
- Introducció a Selenium WebDriver - Tutorial Selenium núm. 8
- Tutorial Geb: proves d'automatització del navegador mitjançant l'eina Geb
- Tutorial de Parrot QA: revisió de l'eina de proves funcionals de diversos navegadors