Configurarea unei rețele de seleniu pentru testarea distribuită a seleniului



Acest blog vă va ajuta să înțelegeți necesitatea rețelei de seleniu și a beneficiilor sale. Citiți-l pentru a configura prima dvs. rețea Selenium configurând hub-ul și nodurile.

Celelalte bloguri din această serie de tutoriale Selenium vorbesc despre crearea cazurilor de testare și executarea acestor cazuri de testare în ordine și în paralel. Deci, ultima tehnică rămasă pentru discuție este executarea cazurilor de testare pe mașini la distanță. Selenium Grid poate fi utilizat pentru executarea acestor teste pe mașini / gazde la distanță. Prin urmare, acesta este subiectul de discuție al blogului de astăzi.

  1. De ce și când să folosiți Selenium Grid?
  2. Ce este Selenium Grid?
  3. Selenium Grid 1 vs. Selenium Grid 2
  4. Arhitectura rețelei de seleniu
  5. Construirea unei rețele de seleniu

De ce și când să folosiți Selenium Grid?

Există atât de multe browsere web care sunt utilizate astăzi. Este posibil ca utilizatorii să folosească Chrome sau Firefox sau Safari sau Opera sau chiar Internet Explorer pentru a citi chiar acest blog. Este posibil să utilizeze diferite versiuni ale browserelor. Este posibil, de asemenea, să ruleze aceste browsere pe orice sistem de operare, fie el Windows sau Mac sau Ubuntu sau orice altă distribuție de Linux.





Ce se întâmplă dacă utilizatorii ar vedea ceva important pe internet? Ceva important pentru afacerea dvs. Nu ați vrea să faceți acest efort suplimentar (testarea aplicației web) doar pentru a vă asigura că utilizatorii și / sau clienții dvs. beneficiază de cea mai bună experiență de utilizare? Ai face, nu?

Ei bine, ar trebui!



Dar întrebarea este, cât de fezabilă este? Veți putea petrece timp testând aplicația dvs. web pe fiecare sistem de operare posibil și pe fiecare browser web disponibil? Hmm, sună ca o provocare. Aici Selenium Grid se potrivește cu factura și ajutăeconomisiți-vă timp și energie.

ce este o metodă javascript

În plus, se mai pune o întrebare: Este viabilă configurarea infrastructurii rețelei de seleniu utilizând sisteme locale? Menținerea unei rețele cu toate browserele și sistemele de operare necesare este o provocare. Pentru aceasta, există mai multe platforme online care oferă o rețea de seleniu online pe care o puteți accesa pentru a rula scripturile dvs. de automatizare a seleniului. De exemplu, puteți utiliza LambdaTest . Are mai mult de 2000 de medii de browser pe care le puteți rula testele și teste cu adevărat automate în browser.

Ce este rețeaua de seleniu?

Selenium Grid este un alt instrument important din suita de instrumente Selenium. Grid este capabil să coordoneze testele WebDriver / testele RC care pot rula simultan pe mai multe browsere web sau pot fi inițiate pe diferite sisteme de operare sau chiar găzduite pe diferite mașini.



rețea de lucru - rețea de seleniuDeci, cum funcționează asta? Grid utilizează o arhitectură Hub-Node unde există un Hub, care acționează ca master și unul sau mai multe Nodes care acționează ca sclavi.

Ceea ce înseamnă acest lucru este că, dacă aveți în total 100 de joburi / teste care trebuie executate, testele pot fi executate simultan în 5 mașini, unde fiecare mașină va rula 20 de teste. De fapt, puteți executa aceste teste în diferite combinații de sisteme de operare și browsere. Fiecare mașină de aici poate avea un SO diferit și în interiorul fiecărui SO, testele pot fi efectuate pe diferite browsere.

Acest act ar economisi cu ușurință mult timp din executarea testului. Dacă luați în considerare exemplul de mai sus, atunci putem reduce timpul de execuție la aproximativ 1/5 din timpul total necesar pentru executarea testelor pe o singură mașină.

Dacă vă amintiți din blogurile mele anterioare, am menționat de nenumărate ori că Grid a făcut parte din proiectul Selenium de la înființare, adică de la Selenium v1. Selenium Grid a fost, de asemenea, o parte a Selenium v2 și în prezent face parte din Selenium v3. Nu există prea multe diferențe în v2 și v3 din rețeaua de seleniu. Cu toate acestea, v1 are multe diferențe comparativ. Asa ca hai saînțelegeți diferențele dintre v1 și v2.

Selenium Grid 1 vs. Selenium Grid 2

Diferența fundamentală între Grid v1.0 și v2.0 este că, RC a fost utilizat în Grila 1, iar WebDriver a fost utilizat în Grila 2. Tabelul de mai jos explică diferențele în detaliu.

Grila 1 Grila 2
Necesită instalarea Apache AntInstalarea Apache Ant nu este necesară
Are propria telecomandă (Acest lucru este diferit de serverul RC)Pachet cu fișier jar Selenium Server
Suportă numai comenzi Selenium RCSuportă atât scripturile Selenium RC, cât și WebDriver
Puteți automatiza un singur browser pentru fiecare telecomandăPuteți automatiza până la 5 browsere pe telecomandă


Acum, că am aflat diferențele fundamentale dintre cele două versiuni, să ne adâncim în Selenium Grid.

Arhitectura rețelei de seleniu

După cum am menționat anterior, Grid funcționează pe baza unui Hub și a mai multor noduri. Dar, ce sunt Hub și noduri și ce fac?

Hubul

În orice configurare a rețelei, poate exista un singur hub și acesta va fi punctul central în acea configurare a rețelei. Toate testele care trebuie executate ar trebui încărcate aici. În ciuda încărcării testelor aici, acestea vor fi executate numai la noduri. Putem configura orice mașină gazdă pentru a fi hub-ul nostru și va coordona activitățile de execuție a testelor la alte gazde.

Pentru ca acest lucru să se întâmple, trebuie mai întâi să configurăm Hub-ul, apoi să creăm alte noduri pentru a se înregistra în Hub. Înainte de a intra în prea multe detalii, permiteți-mi să vă arăt comanda de configurare a hub-ului.

Configurarea hub-ului

În primul rând, trebuie să descărcați fișierul JAR al serverului Selenium de pe site-ul web al Seleniumhq. Legătura este Aici . De asemenea, trebuie să vă asigurați că Java este instalat în sistemul dvs. și că sunt setate variabilele de mediu.

După ce ați descărcat fișierul jar, trebuie să îl plasați într-un director adecvat. Pentru confortul meu, l-am descărcat și l-am plasat în folderul Selenium din C Drive. Este recomandat să descărcați și fișierul jar și să îl plasați într-un director similar în toate celelalte noduri.

cum se utilizează bancul de lucru mysql

Pentru a configura hub-ul, trebuie să executați comanda în promptul de comandă Windows. Comanda este prezentă în fragmentul de mai jos.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

selenium-server-standalone-3.4.0.jar este numele fișierului jar pe care l-am descărcat.
-rol pavilion este utilizat pentru a seta acea mașină gazdă specială ca Hub. Când apăsați Enter, veți obține rezultatul de mai jos pe ecran.

În cazul în care nu ați observat captura de ecran de mai sus, apoi revedeți-o. Se spune „ -Nodurile trebuie să se înregistreze la http://192.168.0.11:4444/grid/register ‘. Acum că Hub-ul este configurat, trebuie să configurăm nodurile și să le conectăm la acest Hub.

192.168.0.11 este adresa IP a hub-ului și fiecare nod ar trebui să se conecteze la această adresă IP. 4444 este numărul de port implicit pe care Selenium Grid este găzduit și ascultă cererile. Dacă un alt serviciu rulează pe portul 4444 și doriți ca Selenium Grid să fie găzduit pe un alt port, atunci puteți face acest lucru specificând -port pavilion urmat de numărul portului.

Nodurile

Nodurile sunt mașinile gazdă pe care se execută testele. Aceste teste vor fi lansate de Hub. Hubul poate lansa unul sau mai multe noduri fie pe mașini la distanță, fie pe aceeași mașină în care se află hub-ul în sine. Pe fiecare dintre noduri, pot fi pornite diferite sisteme de operare, iar pe diferite sisteme de operare, pot fi inițiate versiuni diferite ale aceluiași browser sau browsere diferite.

Configurarea nodurilor

Similar cu Hub-ul, trebuie mai întâi să descărcați fișierul Jar în mașinile Node și să-l plasați pe unitatea C sau orice alt director comun pentru confortul dvs. Apoi puteți rula comanda de mai jos în promptul de comandă Windows. Dacă lansați chiar și nodul pe aceeași mașină cu hub-ul dvs., atunci trebuie să rulați comanda pornind un alt prompt de comandă.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar seleniu-server-standalone-3.4.0.jar -node rol -hub http://192.168.0.11:4444/grid/register

Există doar câteva diferențe în această comandă în comparație cu comanda necesară pentru a porni Hub-ul.
-Dwebdriver.chrome.driver = E: chromedriver.exe este folosit pentru a seta calea driverului browserului. Similar cu setarea căii driverului browserului în codul dvs. WebDriver, îl specificați aici pentru a permite nodului să efectueze teste. Începând cu Selenium v3, trebuie să descărcați browserul driverului pentru Firefox. Driverul browserului pentru Firefox este driverul Gecko. Cu toate acestea, în versiunile 1 și 2, trebuie să setați driverul browserului pentru toate browserele, altele decât Firefox.
-nodul rolului semnalizatorul este utilizat pentru a seta acea mașină gazdă specială ca nod.
-hub http://192.168.0.11:4444/grid/register informează Nodul să se conecteze la Hub utilizând adresa IP a Hubului. Un punct important de remarcat este că, dacă lansați orice nod pe aceeași mașină cu hub-ul dvs., puteți specifica „ -hub http: // localhost: 4444 / grid / register „În comandă în loc de adresa IP a hub-ului.

Când apăsați Enter, veți obține rezultatul de mai jos pe promptul de comandă.

Până acum, Nodul ar fi fost conectat la Hub. Puteți verifica acest lucru revenind la promptul de comandă utilizat pentru pornirea Hub-ului și veți observa următorul mesaj: „ Înregistrat un nod http://192.168.0.11:5555 ‘.

Adresa IP și numărul portului sunt cele ale nodului dvs. Deoarece am nodul pe aceeași mașină cu hub-ul meu, portul utilizat pentru nod este 5555. Când îl inițiați pe o altă mașină, va fi utilizat portul implicit.

Când lansați următoarea adresă URL în mașina Hub-ului dvs., veți obține starea nodurilor conectate la hub-ul dvs. Vedeți porțiunea evidențiată în captura de ecran de mai jos.

Acum că grila Selenium este configurată, puteți trece la executarea scripturilor de testare pe noduri. Permiteți-mi să subliniez din nou că trebuie să rulăm scripturi în hub-ul nostru și acestea vor fi executate în nodurile noastre. Scriptul folosit pentru executarea testelor este similar cu WebDriverteste.

Construirea unei rețele de seleniu

Mi-am rulat scriptul în Eclipse IDE. Executarea acestui script se bazează pe două pachete importante de bibliotecă. Sunt Capabilități dorite obiect și RemoteWebDriver obiect.

DesiredCapabilities este utilizat pentru a seta tipul de browser și sistemul de operare al nodului nostru. Pentru a importa obiectul DesiredCapabilities, utilizați codul de mai jos.

import org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver este utilizat pentru a selecta nodul pe care dorim să executăm testul. Pentru a importa obiectul RemoteWebDriver, utilizați liniile de cod de mai jos.

import java.net.MalformedURLException import java.net.URL import org.openqa.selenium.remote.RemoteWebDriver

Am importat aceste două pachete împreună cu pachetul de adnotări TestNG pentru scriptul meu așa cum se arată în fragmentul de cod de mai jos. Am importat adnotări TestNG deoarece am executat acest lucru ca test TestNG pentru care va fi generat un raport detaliat. Vă recomand să importați același set de pachete pentru codul dvs.

Când manevrați peste logo-urile oricărui browser prezent în consola Selenium Hub, veți obține detalii precum browserName si platformă a nodului pe care doriți să îl automatizați. Imaginea indică, de asemenea, câte instanțe ale browserelor pot deschide în nodul meu. Pot configura maximum 5 instanțe Chrome, 5 Firefox și 1 Internet Explorer. Aceste detalii sunt prezente în captura de ecran de mai jos.

Puteți utiliza codul din fragmentul de mai jos pentru a configura prima grilă.

pachet GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver public class TestGrid {static WebDriver driver static String nodeUrl @BeforeTest public void setup () throws Malform setup () nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities powers = DesiredCapabilities.chrome () powers.setBrowserName ('chrome') powers.setPlatform (Platform.WINDOWS) driver = new RemoteWebDriver (new URL (nodeUrl ), capabilități)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Am împărțit întregul script de testare în trei adnotări de testare. @BeforeTest, @Test și @AfterTest. În @BeforeTest, am folosit obiectele DesiredCapablities și RemoteWebDriver pentru a-mi configura nodul. În @Test, am cerut nodului să navigheze la pagina principală a lui Edureka și să afirm titlul paginii. În @AfterTest, am cerut nodului să renunțe la instanța browserului.

Când testul dvs. trece de execuție, veți obține rezultatul de mai jos.

18 mai 2017 15:09:07 PM org.openqa.selenium.remote.ProtocolHandhake create Session INFO: Dialect detectat: OSS PASSED: simpleTest ====================== ========================== Testare implicită Testele rulate: 1, Eșecuri: 0, Salturi: 0 ========== =================================================== ================================== Suita implicită Total teste efectuate: 1, Eșecuri: 0, Omite: 0 = ===============================================

Deoarece acesta este executat ca test TestNG, veți obține un raport detaliat de testare similar cu captura de ecran de mai jos.

Dacă nu știți ce este TestNG și ce cum să utilizați adnotările de test, atunci citiți blogul meu despre cum să utilizați Selenium WebDriver cu TestNG din această serie de tutoriale Selenium.

Puteți vedea videoclipul de mai jos pentru a asista la o demonstrație despre cum să construiți o rețea de seleniu. Instructorul care livrează videoclipul explică aceleași concepte explicate în acest blog.

Tutorial pentru grila de seleniu pentru începători | Tutorial Selenium | Edureka

Deci, asta ne aduce la sfârșitul acestui blog Selenium Grid. Dacă aveți vreo îndoială sau problemă cu codul / conținutul acestei serii de bloguri, vă rugăm să le lăsați în secțiunea de comentarii de mai jos și vă voi rezolva problema cel mai devreme.

Dacă doriți să învățați seleniul și să construiți o carieră în domeniul testării, consultați interactivul nostru live-online aici, acesta vine cu suport 24 * 7 pentru a vă ghida pe toată perioada de învățare.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii și vă vom răspunde.

Întrebări despre interviul Google Data Scientist