selenium grid tutorial
Introducere în Selenium Grid și cum se efectuează teste de browser încrucișat folosind Selenium Grid:
Acum suntem aproape de sfârșitul acestui lucru serie cuprinzătoare de tutoriale Selenium . Săptămâna viitoare, vom încheia această serie online de Selenium Training cu tutoriale „estimarea efortului proiectelor Selenium” și „Întrebări și răspunsuri la interviu Selenium”.
Astăzi, în acest tutorial vă vom prezenta cu Grila de seleniu - a executarea testelor distribuite mediu pentru a accelera executarea unui test de trecere. Aflați cum să efectuați teste încrucișate folosind Selenium Grid.
Ce veți învăța:
- Care este nevoia rețelei de seleniu?
- Beneficiile rețelei de seleniu
- Instalați Selenium GRID
- Browser și noduri
- maxInstances
- maxSession
- Exemplu de cod de rețea
- Configurare folosind fișierul JSON
- Concluzie
- Lectură recomandată
Care este nevoia rețelei de seleniu?
Pe măsură ce parcurgi întregul Tutoriale Selenium WebDriver veți afla că WebDriver vă va executa cazurile de testare pe o singură mașină.
Iată câteva probleme cu o astfel de configurare:
- Ce se întâmplă dacă doriți să executați cazurile de testare pentru diferite sisteme de operare?
- Cum să rulați cazurile de testare în versiunea diferită a aceluiași browser?
- Cum să rulați cazurile de testare în mai multe browsere?
- De ce un scenariu ar trebui să aștepte executarea altor cazuri de testare chiar dacă nu depinde de niciun caz de testare?
Toate aceste probleme sunt abordate în Selenium GRID.
Pe măsură ce continuăm cursul Selenium, vom avea ideea despre cum putem depăși aceste probleme. Practic, arhitectura Grid se bazează pe arhitectura master-slave. Mașina principală distribuie cazuri de testare la diferite mașini slave.
Există 2 versiuni de Grid disponibile. Selenium Grid 2.0 este cel mai recent de la Selenium. Selenium 1.0 a fost versiunea anterioară. Majoritatea experților în seleniu preferă să folosească Selenium Grid 2.0 deoarece este dotat cu noi caracteristici. Selenium Grid 2.0 acceptă atât scripturile Selenium RC, cât și Selenium WebDriver.
Instrument recomandat:
# 1) LambdaTest
Efectuați teste de automatizare Selenium pe o rețea online Selenium Gral, scalabilă, sigură și fiabilă. Accelerați automatizarea testului Selenium în același timp, creșteți acoperirea testului testând pe o infrastructură online de peste 2000 de medii de desktop și browser mobile.
Citire sugerată = >> Automatizează testarea browserului cu LambdaTest
Beneficiile rețelei de seleniu
- Selenium Grid oferă flexibilitatea de a distribui cazurile de testare pentru executare.
- Reduce timpul de procesare a lotului.
- Poate efectua teste multi-browser.
- Poate efectua teste multi-OS.
Terminologia de bază a rețelei de seleniu:
Hub : Hub este punctul central al întregii arhitecturi GRID care primește toate cererile. Există un singur hub în rețeaua de seleniu. Hub distribuie cazurile de test pe fiecare nod.
Nodul : Pot exista mai multe noduri în Grid. Testele se vor desfășura în noduri. Fiecare nod comunică cu Hub-ul și efectuează testul atribuit acestuia.
Instalați Selenium GRID
Pasul 1 : Descărcați fișierul jar Selenium Server de pe site-ul oficial al Selenium, cunoscut anterior ca Selenium RC Server și salvați-l în orice locație de pe discul local.
Adresa URL a sediului central: http://www.seleniumhq.org/download/
Pasul 2 : Deschideți promptul de comandă și navigați la un folder în care se află serverul. Rulați serverul utilizând comanda de mai jos
java -jar selenium-server-standalone-2.41.0.jar-hub de rol
Hubul va folosi în mod implicit portul 4444. Acest port poate fi schimbat prin trecerea diferitului număr de port în promptul de comandă, cu condiția ca portul să fie deschis și să nu i se fi atribuit o sarcină.
Starea poate fi verificată utilizând interfața web: http: // localhost: 4444 / grid / console
Pasul 3 : Mergeți la cealaltă mașină unde intenționați să configurați nodurile. Deschideți promptul de comandă și rulați linia de mai jos.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Rulați serverul de seleniu în alte mașini pentru a porni noduri.
Browser și noduri
După ce porniți hub-ul și nodurile de pe fiecare mașină, veți naviga la GRID Console
Veți găsi 5 Chrome, 5 Firefox și 1 browser IE în secțiunea Browser, ca mai jos.
Acest lucru indică faptul că în mod implicit puteți utiliza 5 browser Chrome, 5 Firefox și 1 browser IE.
De exemplu, dacă doriți să utilizați numai IE, puteți porni nodul folosind comanda de mai jos:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Verificați tipul browserului împreună cu alte detalii în consola GRID făcând clic pe vizualizați config .
În mod similar pentru Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Pentru Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Există puține scenarii în care este posibil să aveți nevoie de browser de la fiecare tip, de exemplu: IE, Chrome și Firefox.
De exemplu, poate fi necesar să utilizați 1 IE și 1 Firefox și 1 browser 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 este utilizat pentru a limita numărul de inițializare a browserului într-un nod.
De exemplu, dacă doriți să lucrați cu 2 Firefox și 2 IE, atunci puteți porni nodul folosind 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
Instanța maximă poate fi verificată în fila de configurare.
În mod similar, alte instanțe ale browserului pot fi configurate folosind maxInstances.
maxSession
maxSession este utilizat pentru a configura câte numere de browsere pot fi utilizate în paralel în sistemul de la distanță.
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
În mod similar, puteți porni mai multe noduri și configurația poate fi verificată în consolă.
NOD1:
NOD2:
Exemplu de cod de rețea
Aici am folosit TestNG pentru a rula un exemplu de caz de testare GRID.
Condiție prealabilă : Creați Hub și noduri așa cum s-a explicat anterior și TestNG ar trebui să fie configurat în eclipsă.
Aici am făcut un eșantion de test pentru a mă conecta la Gmail și a introduce numele de utilizator și parola
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(); }
Ca și în exemplu, trebuie să utilizați RemoteWebDriver dacă utilizați GRID și trebuie să oferiți capacități browserului. Trebuie să setați browserul și platforma ca mai sus.
optimizator de sistem gratuit pentru Windows 7
În acest exemplu, am folosit platforma ca WINDOWS. Puteți utiliza orice platformă conform cerințelor dvs.
O versiune a browserului poate fi setată și utilizând dr.setVersion („versiune”)
Pentru instanță, trebuie să rulați acest test în serie în mai multe browsere, trebuie să vă configurați testng.xml. Mai jos este suita testng.XML pentru testul de mai sus pentru a rula testul în serie.
Pentru a rula testul în paralel, trebuie să vă schimbați testng.xml ca mai jos.
Aici în testng.XML trebuie să specificați parametrul ca parllel = „Teste” și număr de fire = „3” descrie numărul maxim de fire de executat în paralel.
Configurare folosind fișierul JSON
Grila poate fi, de asemenea, lansată împreună cu configurarea sa utilizând un fișier de configurare JSON.
Creați un fișier JSON pentru configurarea de mai jos. Aici am creat un fișier JSON numit 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 }
Porniți hubul folosind comanda de mai jos
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
În mod similar, creați fișier json diferit pentru diferite noduri conform configurației necesare.
Iată un exemplu de fișier de configurare JSON pentru nodul numit 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, } }
Pentru a porni nodul
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Puteți schimba toată configurația unui browser, maxInstances, port, maxSession etc. în fișierul JSON.
Puteți furniza versiunea browserului, platforma din fișierul de configurare JSON ca mai jos:
{
„BrowserName”: „chrome”, „version”: „8”, „platform”: „Windows”
}
Concluzie
Este recomandabil să folosiți Selenium Grid atunci când trebuie să efectuați teste multi-browser și aveți un număr mare de cazuri de testare.
În acest modul, am prezentat cum să configurați hub-ul și nodurile Grid, precum și cum să rulați cazurile de testare Grid folosind fișierele testng.XML și JSON.
Următorul tutorial # 30 : Testarea automatizării cu instrumentul Selenium și Castravete . Castravete este un test BDD instrument și cadru. Vom învăța caracteristicile instrumentului Castravete și utilizarea acestuia într-un scenariu în timp real, inclusiv cum se integrează Selenium WebDriver cu Castravete .
Vă rugăm să postați întrebările dvs. legate de Selenium Grid în comentariile de mai jos.
Lectură recomandată
- Tutorial Docker Selenium: Cum se integrează rețeaua Selenium cu Docker
- Testarea automatizării folosind instrumentul Castravete și Seleniu - Tutorial Seleniu # 30
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Spock pentru integrare și testare funcțională cu seleniu
- Tutoriale detaliate pentru eclipsă pentru începători
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Tutorial Geb - Testarea automatizării browserului folosind instrumentul Geb
- Tutorial Parrot QA: Revizuirea instrumentului de testare funcțională a browserului încrucișat