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.

  • 🧩 Rács definiálva: Párhuzamosan futtat teszteket böngészők, operációs rendszerek és gépek között egy hubon és csomópontokon keresztül.
  • 🎯 Kerékagy: Az egyetlen központi gép, ahová a teszteket betöltöd; csak egy hub rácsonként.
  • 🖥️ csomópontok: Egy vagy több gép, amely ténylegesen végrehajtja a teszteket különböző platformokon.
  • 🇧🇷 Beállítás: Indítsa el a Selenium Kiszolgáló jar fájl -role hub és -role node kapcsolókkal, vagy használjon JSON konfigurációs fájlt.
  • 🧪 Tesztszkriptek: A DesiredCapabilities és a RemoteWebDriver metódusok segítségével böngészőt, operációs rendszert és csomópontot célozhat meg.
  • ⏱️ Mikor kell használni: Széleskörű böngésző-operációs rendszer kompatibilitási ellenőrzések és gyorsabb párhuzamos csomagvégrehajtás.

Selenium Rácsos oktatóanyag

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.

Selenium Rács Architectúra
Selenium Rács 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 .

Set Up Selenium Rács

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.

Set Up Selenium Rács

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

Set Up Selenium Rács

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

Set Up Selenium Rács

  • Amikor megnyomja az Enter billentyűt, a parancssornak hasonlónak kell lennie az alábbi képhez.

Set Up Selenium Rács

Step 6) Menj a Selenium Rács webes felület, és frissítse az oldalt. Valami ilyesmit kellene látnod.

Set Up Selenium Rács

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 rácson futtatható tesztszkriptek tervezése

A RemoteWebDriver objektumot, importálnia kell ezeket a csomagokat.

A Grid-en futtatható tesztszkriptek tervezése

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.

A DesiredCapabilites objektum használata

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 DesiredCapabilites objektum használata

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.

A RemoteWebDriver objektum használata

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.

Minta teszteset futtatása a rácson Minta teszteset futtatása a rácson

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

https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json

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

Selenium Rács konfigurálása JSON-fájl használatával

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

Selenium Rács konfigurálása JSON-fájl használatával

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

https://github.com/SeleniumHQ/selenium/blob/selenium-2.53.0/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json

JEGYZET: HA SZELENIUM 3.0 VAGY FELETT HASZNÁL, AZ ALÁBBI JSON FÁJLOT KELL HASZNÁLNI

https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

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

Konfigurálja a csomópontokat JSON használatával

Step 5) Lépjen a rácskonzolra, és ellenőrizze, hogy a csomópontok sikeresen konfigurálva vannak-e

Konfigurálja a csomópontokat JSON használatával

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

GYIK

A hub az az egyetlen központi gép, ahová a teszteket betöltöd és a gridet kezeled. A csomópontok azok a gépek, amelyek ténylegesen futtatják a teszteket adott böngésző- és operációsrendszer-kombinációkban. Egy grid egy hubból és egy vagy több csomópontból áll.

A Grid 1 külön távirányítót használ, és Apache Ant-et igényel, amely csak a következőt támogatja: Selenium RC szkriptek és egy böngésző vezérlőnként. A Grid 2 a következővel van csomagolva: Selenium Szerver jar, nem igényel Ant-ot, és támogatja mind az RC, mind a WebDriver szkripteket.

Hozz létre egy DesiredCapabilities objektumot, állítsd be a browserName és a platform értékét, majd add át egy RemoteWebDriver-nek, amely a csomópontra mutat. URLA rács a tesztet az adott böngészőhöz és operációs rendszerhez tartozó megfelelő csomóponthoz irányítja.

A mesterséges intelligencia képes rangsorolni és párhuzamosítani a teszteket, előre jelezni a hibás teszteket, elosztani a terhelést a csomópontok között, és önjavítani a hibás lokátorokat. Ez csökkenti a végrehajtási időt és a karbantartási erőfeszítést a nagyméretű, számos böngésző-operációs rendszer kombinációt futtató grideken.

Igen. A mesterséges intelligencia eszközei optimális csomópontszámot tudnak ajánlani, JSON-konfigurációkat tudnak generálni, automatikusan skálázhatják a felhőrácsokat a várólista hossza alapján, és észlelhetik az alulhasznált kapacitást.ping A csapatok hatékonyan működtetnek nagyméretű csomagokat manuális hangolás nélkül.

Foglald össze ezt a bejegyzést a következőképpen: