Selenium Grid oktatóanyag: Hub és Node beállítása
⚡ Okos összefoglaló
Selenium A Grid több tesztet futtat párhuzamosan böngészőkön, operációs rendszereken és gépeken egy hub-and-node architektúra használatával. A hub betölti a teszteket az egyik gépen, míg a csomópontok végrehajtják azokat a többi gépen, lehetővé téve a gyorsabb böngészőközi lefedettséget parancssoron vagy JSON konfiguráción keresztül.

Mi a Selenium Rács?
Selenium Rács része a Selenium Suite, amely több teszt párhuzamos futtatására specializálódott különböző böngészőkön, operációs rendszereken és gépeken. Ez a távoli böngészőpéldányok parancsainak irányításával érhető el, ahol a kiszolgáló hubként működik. A tesztek végrehajtásához a felhasználónak be kell állítania a távoli kiszolgálót.
Selenium A Gridnek 2 változata van – a régebbi Grid 1 és az újabb Grid 2. Csak a Grid 2-re fogunk összpontosítani, mert a Grid 1 fokozatosan megszűnik a Selenium Csapat.
Selenium Rács Architectúra
Selenium A rácsnak van elosztója és csomópontja Architectúra.

Kerékagy
- A központ az a központi pont, ahová a teszteket betöltheti.
- Egy rácsban csak egy hub lehet.
- A hub csak egyetlen gépen indul el, mondjuk egy olyan számítógépen, amelynek operációs rendszere van Windows 7 és amelynek böngészője IE.
- A hubot tartalmazó gépen futnak a tesztek, de látni fogja, hogy a böngésző automatizálódik a csomóponton.
csomópontok
- A csomópontok a Selenium példányok, amelyek végrehajtják a hub-ra betöltött teszteket.
- Egy rácsban egy vagy több csomópont lehet.
- A csomópontok több gépen is elindíthatók, különböző platformokkal és böngészőkkel.
- A csomópontokat futtató gépeknek nem kell azonos platformmal rendelkezniük a hub platformjával.
Selenium A Grid egy hub-node koncepciót használ, ahol a tesztet csak egyetlen gépen futtatja, az a kerékagy, de a végrehajtást különböző nevű gépek fogják végrehajtani csomópontok.
Hogyan állítsam be Selenium Rács?
Ebben a részben 2 gépet fog használni. Az első gép az a rendszer lesz, amely a hubot futtatja, míg a másik gép egy csomópontot. Az egyszerűség kedvéért nevezzük azt a gépet, ahol a hub fut, „A gépnek”, míg azt a gépet, ahol a csomópont fut, „B gépnek” nevezzük. Fontos megjegyezni az IP-címüket is. Tegyük fel, hogy az A gép IP-címe 192.168.1.3, míg a B gép IP-címe 192.168.1.4.
Step 1) Töltse le a Selenium Szerver innen: itt .
Step 2) Elhelyezheti a Selenium Szerver .jar fájl bárhol a merevlemezen. Ennek az oktatóanyagnak a céljára helyezze az A és a B gép C meghajtójára. Ezt követően a telepítés befejeződött. Selenium Rács. A következő lépések elindítják a hubot és a csomópontot.
Step 3)
- Most elindítunk egy hubot. Lépjen az A gépre. A parancssor használatával keresse meg az A gép – C meghajtójának gyökerét, mert ez az a könyvtár, ahová a Selenium Szerver.
- A parancssorba írja be java -jar selenium-server-standalone-2.30.0.jar -role hub
- A hubot sikeresen el kell indítani. A parancssornak az alábbi képhez hasonlóan kell kinéznie.
Step 4) Egy másik módja annak, hogy ellenőrizze, hogy a hub fut-e, egy böngésző használatával. Selenium A Grid alapértelmezés szerint az A gép 4444-es portját használja webes felületéhez. Egyszerűen nyisson meg egy böngészőt, és lépjen a címre http://localhost:4444/grid/console
Azt is ellenőrizheti, hogy a B gép hozzáfér-e a hub webes felületéhez, ha elindít egy böngészőt, és oda lép, ahol az „iporhostnameofmachineA” annak a gépnek az IP-címe vagy gazdagépneve, amelyen a hub fut. Mivel az A gép IP-címe 192.168.1.3, a B gép böngészőjében be kell írnia http://192.168.1.3:4444/grid/console
Step 5)
- Most, hogy a hub már be van állítva, elindítunk egy csomópontot. Lépjen a B gépre, és indítson ott egy parancssort.
- Keresse meg a C meghajtó gyökerét, és írja be az alábbi kódot. A 192.168.1.3 IP-címet használtuk, mert ott fut a hub. Használtuk az 5566-os portot is, bár tetszőleges szabad portszámot választhat.
- MEGJEGYZÉS: Ha használja, most meg kell adnia a Gecko illesztőprogram elérési útját Firefox. Itt található a frissített kód, amelyet használni kell
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
- Amikor megnyomja az Enter billentyűt, a parancssornak hasonlónak kell lennie az alábbi képhez.
Step 6) Menj a Selenium Rács webes felület, és frissítse az oldalt. Valami ilyesmit kellene látnod.
Ezen a ponton már konfigurált egy egyszerű rácsot. Most már készen áll egy teszt futtatására távolról a B gépen.
Mikor kell használni? Selenium Rács?
Használja Selenium Rács, ha a következők egyikét vagy mindkettőt szeretné végrehajtani:
- Futtassa le a teszteket különböző böngészőkön, operációs rendszereken és gépeken egyszerre. Ez biztosítja, hogy az alkalmazás Ön Tesztelés teljes mértékben kompatibilis a böngésző-OS kombinációk széles skálájával.
- Takarítson meg időt a tesztcsomagok végrehajtásával. Ha beállítod Selenium Rács, ha mondjuk 4 tesztet futtat egyszerre, akkor körülbelül 4-szer gyorsabban tudja befejezni az egész csomagot.
Grid 1.0 vs Grid 2.0
Az alábbiakban bemutatjuk a fő különbségeket Selenium 1. és 2. rács.
| 1 rács | 2 rács |
|---|---|
| Selenium A Grid 1 saját távirányítóval rendelkezik, amely különbözik a Selenium RC szerver. Két különböző programról van szó. | Selenium A 2. rács most a következővel együtt van csomagolva Selenium Szerver jar fájl |
| Telepíteni és konfigurálni kell Apache A Grid 1 használata előtt először hangya. | Nem kell telepítenie az Apache Ant-ot a Grid 2-ben. |
| Csak támogatni lehet Selenium RC parancsok/szkriptek. | Mindkettőt támogathatja Selenium RC és WebDriver szkriptek. |
| Távirányítónként csak egy böngésző automatizálható. | Egy távirányító legfeljebb 5 böngészőt képes automatizálni. |
Selenium a rácsot kétféleképpen lehet felállítani; az egyiket a parancssoron, a másikat a JSON konfigurációs fájlon keresztül.
A Grid-en futtatható tesztszkriptek tervezése
A rácson futó tesztszkriptek tervezéséhez használnunk kell DesiredCapabilites és a RemoteWebDriver tárgyakat.
- DesiredCapabilites típusának beállítására szolgál böngésző és a OS hogy automatizálni fogjuk.
- RemoteWebDriver arra szolgál, hogy beállítsuk, melyik csomóponton (vagy gépen) fusson a tesztünk.
A DesiredCapabilites objektumot, először importálnia kell ezt a csomagot
A RemoteWebDriver objektumot, importálnia kell ezeket a csomagokat.
A DesiredCapabilites objektum használata
Lépjen a Grid webes felületére, és vigye az egérmutatót az automatizálni kívánt böngésző képére. Vegye figyelembe a emelvény, és a böngészőnév mutatja az eszköztipp.
Ebben az esetben a platform „XP”, a böngésző neve pedig „Firefox. "
A platformot és a böngészőNévet a WebDriverünkben fogjuk használni az alábbiak szerint (természetesen először importálnia kell a szükséges csomagokat).
A RemoteWebDriver objektum használata
Importálja a szükséges csomagokat a RemoteWebDriver számára, majd adja át a fent létrehozott DesiredCapabilities objektumot a RemoteWebDriver objektum paramétereként.
Minta teszteset futtatása a rácson
Az alábbiakban egy egyszerű WebDriver látható Testng kódot, amelyben létrehozhat Eclipse Az A gépen. A futtatás után a B gépen az automatizálás megtörténik.
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()); } }
A tesztnek át kell mennie.
![]() |
![]() |
Selenium grid konfiguráció JSON fájl használatával
A JSON jelentése Javascript Objektumjelölés. Ez egy szabványos formátum, amelyet a böngésző és a webszerver közötti adatcserére használnak. Selenium rendelkezik egy beépített JSON konfigurációs fájllal, amely a szelénrács beállítására használható.
Az alábbiakban bemutatjuk a szelénrács JSON konfigurációs fájl használatával történő konfigurálásának lépéseit.
Step 1) Töltse le a JSON konfigurációs fájl kódját az alábbi elérési út használatával
Itt a kód
{
"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
}
Step 2) Másolja ki a kódot, és illessze be a „.json” kiterjesztésű szövegszerkesztőbe, például a Jegyzettömbbe
Step 3) Indítsa el a hubot az alábbi paranccsal a parancssor használatával
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
JEGYZET: Selenium önálló jar fájlnak és a json fájlnak ugyanabban a könyvtárban kell lennie
Step 4) Az alábbi képernyő jelenik meg, amely jelzi, hogy a hub sikeresen be van állítva
Step 5) Nyisd meg a webböngészőt, és próbálj meg csatlakozni az alábbiakhoz URL
http://192.168.43.223:4444/grid/console
JEGYZET: Az URL gépenként eltérő lehet. URL majd a fenti képernyőn a „Csomódoknak regisztrálniuk kell” lehetőséget kell használni.
Step 6) Megjelenik a Grid Console képernyő, amely azt jelzi, hogy a hub működik és működik
Konfigurálja a csomópontokat JSON használatával
Step 1) Töltse le a minta csomópont-konfigurációs fájlt, amelyet biztosított Selenium az alábbiak használatával URL
JEGYZET: HA SZELENIUM 3.0 VAGY FELETT HASZNÁL, AZ ALÁBBI JSON FÁJLOT KELL HASZNÁLNI
Step 2) Másolja ki és illessze be a kódot egy szövegszerkesztőbe, például a Jegyzettömbbe, és mentse a fájlt „.json” kiterjesztéssel.
Step 3)
Futtassa az alábbi parancsot a parancssorban
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
JEGYZET: A parancs futtatása előtt győződjön meg arról, hogy az egyes böngészők illesztőprogramjait letöltötte a helyi gépkönyvtárba
Step 4) Az Enter gomb megnyomásakor az alábbi képernyő jelenik meg
Step 5) Lépjen a rácskonzolra, és ellenőrizze, hogy a csomópontok sikeresen konfigurálva vannak-e
A böngészők a rácskonzolon jelennek meg. Így biztosak lehetünk abban, hogy a csomópontok sikeresen konfigurálva vannak.
Minta tesztesetek bekapcsolva Selenium Rács:
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 = "https://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"); } } }
A fenti kód elindítja a Chrome böngészőt, és a következő helyre navigál: URL az „alap” részben meghatározottURL' változó. Ellenőrizte, hogy a 'Mobil tesztelés' nevű link megjelenik-e az oldalon.
URL a 'csomóponton'URL'változó módosítható, hogy a távoli gép IP-címét tükrözze. A teszt eredménye az alapértelmezett TestNG jelentés készült







.png)






