Postavljanje selenske mreže za distribuirano testiranje selena



Ovaj će vam blog pomoći da shvatite potrebu za Selenium Grid i njegove prednosti. Pročitajte ga da biste postavili svoju prvu selenijsku mrežu konfiguriranjem čvorišta i čvorova.

Ostali blogovi u ovoj seriji tutorijala za Selenium govore o stvaranju testnih slučajeva i izvršavanju tih testnih slučajeva u nizu i paralelno. Dakle, konačna tehnika koja ostaje za raspravu je izvršavanje test slučajeva na udaljenim strojevima. Selenium Grid se može koristiti za izvršavanje ovih testova na udaljenim računalima / domaćinima. Stoga je to tema rasprave današnjeg bloga.

  1. Zašto i kada koristiti Selenium Grid?
  2. Što je selenska rešetka?
  3. Selen Grid 1 vs. Selenium Grid 2
  4. Arhitektura selenske rešetke
  5. Izgradnja selenske mreže

Zašto i kada koristiti selensku mrežu?

Postoji toliko mnogo web preglednika koji su danas u upotrebi. Korisnici možda koriste Chrome ili Firefox ili Safari ili Opera ili čak Internet Explorer za čitanje ovog bloga. Možda koriste različite verzije preglednika. Oni također mogu pokretati ove preglednike na bilo kojem OS-u, bio to Windows ili Mac ili Ubuntu ili bilo koja druga distribucija Linuxa.





Što ako korisnici vide nešto važno na internetu? Nešto važno za vaše poslovanje. Ne biste li željeli prijeći taj dodatni kilometar (testiranje web aplikacije) samo kako biste osigurali da vaši korisnici i / ili kupci dobiju najbolje korisničko iskustvo? Bi, zar ne?

Pa trebao bi!



Ali pitanje je koliko je to izvedivo? Hoćete li moći potrošiti vrijeme testirajući svoju web aplikaciju na svim mogućim OS-ima i svim dostupnim web-preglednicima? Hmm, to zvuči kao mali izazov. Tu se selenska rešetka uklapa u račun i pomažeuštedite svoje vrijeme i energiju.

Uz ovo, postavlja se još jedno pitanje, je li izvedivo postaviti mrežnu infrastrukturu Selenium pomoću lokalnih sustava? Održavanje mreže sa svim potrebnim preglednicima i operativnim sustavima je izazov. Zbog toga postoji više mrežnih platformi koje nude mrežnu mrežu selena kojoj možete pristupiti za pokretanje skripti za automatizaciju selena. Na primjer, možete koristiti LambdaTest . Ima više od 2000 okruženja preglednika u kojima možete pokretati svoje testove i uistinu automatizirati testiranje različitih pretraživača.

Što je selenska mreža?

Selenium Grid je još jedan važan alat u alatu Selenium. Grid je sposoban koordinirati WebDriver testovima / RC testovima koji se mogu istodobno izvoditi na više web preglednika ili se mogu pokrenuti na različitim operativnim sustavima ili čak hostirati na različitim računalima.



mreža radi - selenska mrežaPa, kako to ide? Grid koristi Hub-Node arhitekturu, gdje postoji jedan Hub, koji djeluje kao glavni i jedan ili više Čvorova koji djeluju kao slave.

Što to znači, ako imate ukupno 100 poslova / testova koje treba izvršiti, tada se testovi mogu istovremeno izvršavati na 5 strojeva, gdje će svaki stroj izvoditi 20 testova. Zapravo, ove testove možete izvoditi u različitim kombinacijama operativnih sustava i preglednika. Svaki stroj ovdje može biti različitog OS-a, a unutar svakog OS-a testovi se mogu izvoditi na različitim preglednicima.

Ovaj bi postupak lako uštedio puno vašeg vremena u izvršavanju testa. Ako uzmete u obzir gornji primjer, tada možemo smanjiti vrijeme izvršavanja na oko 1/5 ukupnog vremena potrebnog za izvršavanje testova na jednom stroju.

Ako se možete sjetiti mojih prethodnih blogova, nebrojeno sam puta spomenuo da je Grid bio dio projekta Selenium od njegovog početka, tj. Od Selenium v1. Selenium Grid je također bio dio Selenium v2, a trenutno je dio Selenium v3. Nema velike razlike u v2 i v3 selenske mreže. Međutim, v1 ima puno razlika u usporedbi. Pa, krenimorazumjeti razlike između v1 i v2.

Selen Grid 1 vs. Selenium Grid 2

Temeljna razlika između Grid v1.0 i v2.0 je u tome što je RC korišten u Grid 1, a WebDriver u Grid 2. Tablica u nastavku detaljno objašnjava razlike.

Mreža 1 Mreža 2
Zahtijeva instaliranje Apache AntInstalacija Apache Ant nije potrebna
Ima vlastiti daljinski upravljač (ovo se razlikuje od RC poslužitelja)U paketu s datotekom jar Selenium Server
Podržava samo naredbe Selenium RCPodržava skripte Selenium RC i WebDriver
Možete automatizirati samo jedan preglednik po daljinskom upravljačuMožete automatizirati do 5 preglednika po daljinskom upravljaču


Sad kad smo naučili temeljne razlike između dvije verzije, zaronimo duboko u Selenium Grid.

Arhitektura selenske rešetke

Kao što sam već spomenuo, Grid funkcionira na temelju jednog čvorišta i više čvorova. Ali, što su Hub i Nodes i što rade?

Čvorište

U bilo kojem postavljanju mreže može postojati samo jedno središte i to će biti središnja točka u postavljanju mreže. Ovdje treba učitati sve testove koje treba izvršiti. Unatoč testovima koji se ovdje učitavaju, oni će se izvoditi samo na čvorovima. Bilo koji host računalo možemo konfigurirati da bude naše središte i on će koordinirati aktivnosti izvršavanja testa na drugim hostovima.

Da bi se to dogodilo, prvo moramo konfigurirati čvorište, a zatim napraviti druge čvorove za registraciju na čvorište. Prije nego što uđem u previše detalja, dopustite mi da vam pokažem naredbu za konfiguriranje čvorišta.

java je vs ima a

Konfiguriranje čvorišta

Najprije morate preuzeti JAR datoteku poslužitelja Selenium s web mjesta Seleniumhq. Poveznica je ovdje . Također morate osigurati da je Java instalirana u vaš sustav i da su postavljene varijable okruženja.

Nakon što preuzmete jar datoteku, morate je smjestiti u odgovarajući direktorij. Radi moje udobnosti preuzeo sam ga i smjestio u mapu Selenium na C pogonu. Preporučuje se da također preuzmete jar datoteku i smjestite je u sličan direktorij u svim ostalim čvorovima.

kako instalirati php na Windows -

Da biste konfigurirali čvorište, morate pokrenuti naredbu u naredbenom retku sustava Windows. Naredba je prisutna u donjem isječku.

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

The selenium-server-standalone-3.4.0.jar naziv je jar datoteke koju sam preuzeo.
The -uloga zastava koristi se za postavljanje tog određenog računala računala kao čvorišta. Kada pritisnete enter, dobit ćete donji izlaz na zaslonu.

U slučaju da niste primijetili gornju snimku zaslona, ​​ponovno je pogledajte. Kaže ' -Čvorovi se trebaju registrirati na http://192.168.0.11:4444/grid/register ‘. Sada kada je čvorište konfigurirano, moramo postaviti čvorove i povezati ih s ovim čvorištem.

192.168.0.11 je IP adresa čvorišta i svaki čvor trebao bi se povezati s tom IP adresom. 4444 je zadani broj porta na kojem se selenium grid hostira i osluškuje zahtjeve. Ako se neka druga usluga izvodi na portu 4444 i želite da se Selenium Grid hostira na drugoj luci, onda to možete učiniti tako da navedete -luka zastava praćena brojem luke.

Čvorovi

Čvorovi su glavni računari na kojima se pokreću testovi. Te testove pokrenut će Hub. Čvorište može pokrenuti jedan ili više čvorova ili na udaljenim strojevima ili na istom stroju na kojem se nalazi sam čvorište. Na svakom od čvorova mogu se pokrenuti različiti operativni sustavi, a na različitim operativnim sustavima mogu se pokrenuti različite verzije istog preglednika ili različitih preglednika.

Konfiguriranje čvorova

Slično Hubu, najprije morate preuzeti datoteku Jar u Node strojevima i smjestiti je na C pogon ili bilo koji drugi uobičajeni direktorij radi vaše udobnosti. Zatim možete pokrenuti donju naredbu u naredbenom retku sustava Windows. Ako pokrećete čak i čvor na istom stroju kao i vaš čvorište, tada morate pokrenuti naredbu pokretanjem drugog naredbenog retka.

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

Postoji samo nekoliko razlika u ovoj naredbi u odnosu na naredbu potrebnu za pokretanje čvorišta.
-Dwebdriver.chrome.driver = E: chromedriver.exe koristi se za postavljanje putanje upravljačkog programa preglednika. Slično postavljanju putanje upravljačkog programa preglednika u vašem kodu WebDriver, ovdje ga specificirate kako biste omogućili čvoru da provodi testove. Od Selenium v3 nadalje, morate preuzeti preglednik upravljačkih programa za Firefox. Upravljački program preglednika za Firefox je Gecko upravljački program. Međutim, u inačicama 1 i 2 morate postaviti upravljački program preglednika za sve preglednike osim Firefoxa.
-rolni čvor zastava se koristi za postavljanje tog određenog računala računala kao čvora.
-hub http://192.168.0.11:4444/grid/register obavještava Čvor da se poveže s Hubom koristeći IP adresu Hub-a. Važno je napomenuti da ako pokrećete bilo koji Čvor na istom stroju kao i vaš Hub, tada možete odrediti ' -hub http: // localhost: 4444 / grid / register 'U naredbi umjesto IP adrese čvorišta.

Kada pritisnete enter, dobit ćete donji izlaz u naredbenom retku.

Do sada bi Čvor bio povezan s čvorištem. To možete provjeriti vraćanjem u naredbeni redak koji se koristi za pokretanje čvorišta i primijetit ćete sljedeću poruku: ' Registriran čvor http://192.168.0.11:5555 ‘.

IP adresa i broj porta pripada vašem Nodeu. Budući da svoj čvor imam na istom stroju kao i čvorište, priključak koji se koristi za čvor je 5555. Kada ga pokrenete na nekom drugom stroju, koristit će se zadani priključak.

Kada pokrenete sljedeći URL u računalu svog čvorišta, dobit ćete status čvorova povezanih s vašim čvorištem. Pogledajte istaknuti dio na snimci zaslona u nastavku.

Sada kada je vaša mreža Selenium konfigurirana, možete prijeći na izvršavanje testnih skripti na Nodes. Dopustite mi da ponovno naglasim da moramo pokretati skripte u našem čvorištu i one će se izvršavati u našim čvorovima. Skripta koja se koristi za izvršavanje testova slična je WebDriverutestovi.

Izgradnja rešetke od selena

Pokrenuo sam skriptu u Eclipse IDE-u. Izvršenje ove skripte oslanja se na dva važna paketa knjižnica. Oni su Željene mogućnosti objekt i RemoteWebDriver objekt.

java što je varijabla instance

DesiredCapabilities koristi se za postavljanje vrste preglednika i OS našeg Čvora. Da biste uvezli objekt DesiredCapabilities, upotrijebite donji kod.

uvoz org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver koristi se za odabir čvora na kojem želimo izvršiti test. Da biste uvezli objekt RemoteWebDriver, upotrijebite donje retke koda.

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

Uvezao sam ova dva paketa zajedno s paketom bilješki TestNG za moju skriptu, kao što je prikazano u donjem isječku koda. Uvezao sam TestNG bilješke jer sam to izveo kao TestNG test za koji će se generirati detaljno izvješće. Preporučio bih vam da uvezete isti paket paketa za svoj kôd.

Kada manevrirate preko logotipa bilo kojeg preglednika koji se nalazi na konzoli Selenium Hub, dobit ćete detalje poput browserName i platforma čvora koji želite automatizirati. Slika također pokazuje koliko primjera preglednika mogu otvoriti u svom čvoru. Mogu konfigurirati najviše 5 chrome, 5 Firefox i 1 Internet Explorer instanci. Ti su detalji prisutni na donjem snimku zaslona.

Možete koristiti kôd u donjem isječku za postavljanje prve mreže.

paket 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 javna klasa TestGrid {static WebDriver driver static String nodeUrl @BeforeTestx public voforption {nameformed nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities functions = DesiredCapabilities.chrome () sposobnosti.setBrowserName ('chrome') sposobnosti.setPlatform (Platform.WINDOWS) driver = novi RemoteWebDriver (novi URL (nodeUrl ), mogućnosti)} @Test javna praznina simpleTest () Edureka ', driver.getTitle ()) @AfterTest javna praznina afterTest () {driver.quit ()}}

Podijelio sam cijelu testnu skriptu u tri testne bilješke. @BeforeTest, @Test i @AfterTest. U @BeforeTest koristio sam objekte DesiredCapablities i RemoteWebDriver za konfiguriranje svog čvora. U @Test zamolio sam Čvor da ode do Edurekine početne stranice i potvrdi naslov stranice. U @AfterTest zamolio sam Čvor da napusti instancu preglednika.

Kada test prođe izvršenje, dobit ćete donji izlaz.

18. svibnja 2017. 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Otkriven dijalekt: OSS PROŠLO: simpleTest ===================== ========================== Zadani test Pokrenuti testovi: 1, Kvarovi: 0, Preskoči: 0 ========== ======================================== ============= ================================== Zadani paket Ukupno pokrenutih testova: 1, kvarova: 0, preskakanja: 0 = ================================================

Budući da se ovo izvodi kao TestNG test, dobit ćete detaljno izvješće o ispitivanju slično donjem snimku zaslona.

Ako ne znate što je TestNG i kako se koriste napomene za test, pročitajte moj blog o tome kako se koristiti Selenium WebDriver s TestNG-om iz ove udžbeničke serije Selenium.

Video ispod možete vidjeti kako biste svjedočili demonstraciji kako izgraditi selensku mrežu. Instruktor koji donosi video objašnjava iste koncepte objašnjene na ovom blogu.

Vodič za selenske rešetke za početnike | Vodič za selen | Edureka

Dakle, to nas dovodi do kraja ovog bloga Selenium Grid. Ako sumnjate ili imate problema s bilo kojim kodom / sadržajem ove serije blogova, ostavite ih u odjeljku za komentare u nastavku i najprije ću riješiti vaš problem.

Ako želite naučiti selenij i izgraditi karijeru u domeni testiranja, pogledajte našu interaktivnu mrežu uživo ovdje dolazi s podrškom 24 * 7 koja će vas voditi kroz čitavo razdoblje učenja.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.