Selenium Vodič za grid: Postavljanje čvorišta i čvora (primjer)
Što je Selenium Mreža?
Selenium rešetka je dio Selenium Paket koji je specijaliziran za paralelno izvođenje više testova na različitim preglednicima, operativnim sustavima i strojevima. To se postiže usmjeravanjem naredbi udaljenih instanci preglednika gdje poslužitelj djeluje kao čvorište. Korisnik mora konfigurirati udaljeni poslužitelj kako bi izvršio testove.
Selenium Grid ima 2 verzije – stariju Grid 1 i noviju Grid 2. Usredotočit ćemo se samo na Grid 2 jer Grid 1 postupno odbacuje Selenium Tim.
Selenium rešetka Architektura
Selenium Grid ima Hub i Node Architektura.

Središte
- Središte je središnja točka u koju učitavate svoje testove.
- Trebalo bi postojati samo jedno čvorište u mreži.
- Hub se pokreće samo na jednom stroju, recimo računalu čiji je OS Windows 7 i čiji je preglednik IE.
- Stroj koji sadrži čvorište je mjesto gdje će se izvoditi testovi, ali vidjet ćete da je preglednik automatiziran na čvoru.
Nodes
- Čvorovi su Selenium instance koje će izvršiti testove koje ste učitali na čvorištu.
- U rešetki može postojati jedan ili više čvorova.
- Čvorovi se mogu pokrenuti na više strojeva s različitim platformama i preglednicima.
- Strojevi koji pokreću čvorove ne moraju biti ista platforma kao platforma čvorišta.
Selenium Grid koristi koncept hub-node gdje test izvodite samo na jednom stroju koji se zove a središte, ali izvršenje će se vršiti različitim strojevima tzv čvorovi.
Kako postaviti Selenium Mreža?
U ovom ćete odjeljku koristiti 2 stroja. Prvi stroj će biti sustav koji će pokretati čvorište, dok će drugi stroj pokretati čvor. Radi jednostavnosti, nazovimo stroj na kojem radi čvorište kao "Stroj A", dok će stroj na kojem radi čvor biti "Stroj B". Također je važno zabilježiti njihove IP adrese. Recimo da stroj A ima IP adresu 192.168.1.3 dok stroj B ima IP adresu 192.168.1.4.
Korak 1) Preuzimanje Selenium Poslužitelj od ovdje.
Korak 2) Možete postaviti Selenium .jar datoteka poslužitelja bilo gdje na vašem tvrdom disku. Ali za potrebe ovog vodiča, postavite ga na C pogon i Stroja A i Stroja B. Nakon što to učinite, sada ste gotovi s instaliranjem Selenium Mreža. Sljedeći koraci će pokrenuti čvorište i čvor.
Korak 3)
- Sada ćemo pokrenuti čvorište. Idite na Stroj A. Pomoću naredbenog retka idite do korijena pogona Stroja A – C jer je to direktorij u koji smo postavili Selenium Poslužitelja.
- U naredbeni redak upišite java -jar selenium-server-standalone-2.30.0.jar -role hub
- Središte bi trebalo biti uspješno pokrenuto. Vaš naredbeni redak trebao bi izgledati slično slici ispod.
Korak 4) Drugi način da provjerite radi li središte je korištenje preglednika. Selenium Grid prema zadanim postavkama koristi priključak 4444 stroja A za svoje web sučelje. Jednostavno otvorite preglednik i idite na http://localhost:4444/grid/console
Također, možete provjeriti može li Stroj B pristupiti web sučelju čvorišta tako da tamo pokrenete preglednik i odete na mjesto gdje bi “iporhostnameofmachineA” trebala biti IP adresa ili ime glavnog računala na kojem je pokrenut čvorište. Budući da je IP adresa stroja A 192.168.1.3, tada u pregledniku na stroju B trebate upisati http://192.168.1.3:4444/grid/console
Korak 5)
- Sada kada je čvorište već postavljeno, pokrenut ćemo čvor. Idite na Stroj B i tamo pokrenite naredbeni redak.
- Dođite do korijena pogona C i upišite kod u nastavku. Koristili smo IP adresu 192.168.1.3 jer se na njoj hub izvodi. Također smo koristili port 5566 iako možete odabrati bilo koji besplatni broj porta koji želite.
- NAPOMENA: Sada morate dati putanju Gecko upravljačkom programu ako ga koristite Firefox. Ovdje je ažurirani kod koji treba upotrijebiti
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- Kada pritisnete Enter, vaš naredbeni redak trebao bi biti sličan slici ispod.
Korak 6) Idi na Selenium Grid web sučelje i osvježite stranicu. Trebali biste vidjeti ovako nešto.
U ovom trenutku već ste konfigurirali jednostavnu rešetku. Sada ste spremni za daljinsko pokretanje testa na Stroju B.
Kada koristiti Selenium Mreža?
Trebali biste koristiti Selenium Mreža kada želite učiniti jedno ili oboje od sljedećeg:
- Pokrenite svoje testove na različitim preglednicima, operativnim sustavima i strojevima u isto vrijeme. Ovo će osigurati da aplikacija koju ste Ispitivanje potpuno je kompatibilan sa širokim rasponom kombinacija preglednika i OS-a.
- Uštedite vrijeme u izvođenju vaših paketa testova. Ako postavite Selenium Grid za pokretanje, recimo, 4 testa odjednom, tada biste mogli završiti cijeli paket otprilike 4 puta brže.
Mreža 1.0 protiv mreže 2.0
Slijede glavne razlike između Selenium Mreža 1 i 2.
Mreža 1 | Mreža 2 |
---|---|
Selenium Grid 1 ima vlastiti daljinski upravljač koji se razlikuje od daljinskog upravljača Selenium RC poslužitelj. To su dva različita programa. | Selenium Grid 2 je sada u paketu s Selenium Poslužiteljska jar datoteka |
Morate instalirati i konfigurirati apaš Prvo Ant prije nego što možete koristiti Grid 1. | Ne morate instalirati Apache Ant u Grid 2. |
Može samo podržati Selenium RC naredbe/skripte. | Može podržati oboje Selenium RC i WebDriver skripte. |
Možete automatizirati samo jedan preglednik po daljinskom upravljaču. | Jedan daljinski upravljač može automatizirati do 5 preglednika. |
Selenium rešetka se može postaviti na dva različita načina; jedan putem naredbenog retka, a drugi putem JSON konfiguracijske datoteke.
Dizajniranje testnih skripti koje se mogu izvoditi na mreži
Da bismo dizajnirali testne skripte koje će se izvoditi na mreži, moramo koristiti Željene sposobnosti a RemoteWebDriver objekata.
- Željene sposobnosti koristi se za postavljanje vrste preglednik i OS koje ćemo automatizirati.
- RemoteWebDriver koristi se za postavljanje čvora (ili stroja) protiv kojeg će se naš test izvoditi.
Za korištenje Željene sposobnosti objekt, prvo morate uvesti ovaj paket
Za korištenje RemoteWebDriver objekt, morate uvesti ove pakete.
Korištenje objekta DesiredCapabilites
Idite na mrežno sučelje mreže i zadržite pokazivač na slici preglednika koji želite automatizirati. Uzmite u obzir platforma, a naziv preglednika prikazano opisom alata.
U ovom slučaju, platforma je "XP", a naziv preglednika je "Firefox".
Koristit ćemo platformu i naziv preglednika u našem WebDriveru kao što je prikazano u nastavku (naravno, prvo trebate uvesti potrebne pakete).
Korištenje objekta RemoteWebDriver
Uvezite potrebne pakete za RemoteWebDriver, a zatim proslijedite objekt DesiredCapabilities koji smo stvorili iznad kao parametar za objekt RemoteWebDriver.
Izvođenje uzorka testnog slučaja na mreži
Ispod je jednostavan WebDriver Testng kod u kojem možete kreirati Eclipse na Stroju A. Nakon što ga pokrenete, automatizacija će se izvršiti na Stroju B.
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
Test bi trebao proći.
Selenium konfiguracija mreže pomoću JSON datoteke
JSON je skraćenica za Javascript Notacija objekta. To je standardni format koji se koristi za razmjenu podataka između preglednika i web poslužitelja. Selenium ima ugrađenu JSON konfiguracijsku datoteku koja se može koristiti za postavljanje selenijske mreže.
U nastavku su navedeni koraci za konfiguriranje selenium grida pomoću JSON konfiguracijske datoteke.
Korak 1) Preuzmite kod za JSON konfiguracijsku datoteku putem donjeg puta
Evo koda
{ "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 }
Korak 2) Kopirajte i zalijepite kod u uređivač teksta kao što je Notepad s ekstenzijom '.json'
Korak 3)Pokrenite čvorište pomoću donje naredbe pomoću naredbenog retka
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
NAPOMENA: Selenium samostalna jar datoteka i json datoteka moraju biti prisutne u istom direktoriju
Korak 4) Pojavit će se donji zaslon koji označava da je čvorište uspješno postavljeno
Korak 5) Otvorite web preglednik i pokušajte se spojiti na donji URL
http://192.168.43.223:4444/grid/console
NAPOMENA: URL se može razlikovati od stroja do stroja. Mora se koristiti URL iza kojeg slijedi 'Čvorovi bi se trebali registrirati na' na gornjem zaslonu.
Korak 6) Pojavit će se zaslon Grid Console koji označava da je čvorište pokrenuto i radi
Konfigurirajte NODES koristeći JSON
Korak 1) Preuzmite oglednu konfiguracijsku datoteku čvora koju pruža Selenium koristeći donji URL
NAPOMENA: AKO KORISTITE SELENIUM 3.0 ILI NOVIJE, MORATE SE KORISTITI ISPOD JSON DATOTEKU
Korak 2) Kopirajte i zalijepite kod u uređivač teksta kao što je Notepad i spremite datoteku s ekstenzijom '.json'
Korak 3)
Izvedite donju naredbu na naredbenom retku
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
NAPOMENA: Prije pokretanja naredbe, provjerite jesu li upravljački programi za svaki od preglednika preuzeti u lokalni direktorij stroja
Korak 4) Zaslon ispod će se pojaviti kada se pritisne tipka enter
Korak 5) Idite do konzole rešetke da provjerite jesu li čvorovi uspješno konfigurirani
Preglednici su prikazani na konzoli mreže. Stoga možemo biti sigurni da su čvorovi uspješno konfigurirani.
Uzorci testnih slučajeva uključeni Selenium Rešetka:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "http://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
Gornji kod pokreće preglednik Chrome i vodi do URL-a navedenog u varijabli 'baseURL'. Provjerio je da je naziv veze 'Mobilno testiranje' prikazan na stranici
URL na varijabli 'nodeURL' može se modificirati tako da odražava IP adresu udaljenog stroja. Rezultat testa može se provjeriti prema zadanim postavkama TestNG izvješće generirano
rezime
- Selenium Grid se koristi za pokretanje više testova istovremeno na različitim preglednicima i platformama.
- Grid koristi koncept hub-node.
- Središte je središnja točka u koju učitavate svoje testove.
- Čvorovi su Selenium instance koje će izvršiti testove koje ste učitali na čvorištu.
- Da biste instalirali Selenium Grid, trebate samo preuzeti Selenium Datoteka jar poslužitelja – ista datoteka koja se koristi za pokretanje Selenium RC testovi.
- Postoje 2 načina za provjeru radi li čvorište: jedan je putem naredbenog retka, a drugi putem preglednika.
- Za pokretanje testnih skripti na mreži, trebali biste koristiti objekte DesiredCapabilities i RemoteWebDriver.
- DesiredCapabilites se koristi za postavljanje vrste preglednika i OS-a koji ćemo automatizirati.
- RemoteWebDriver se koristi za postavljanje čvora (ili stroja) protiv kojeg će se naš test izvoditi.