Selenium Ruudustiku õpetus: Hubi ja Node'i seadistamine

⚡ Nutikas kokkuvõte

Selenium Grid käivitab mitu testi brauserites, operatsioonisüsteemides ja masinates paralleelselt, kasutades sõlme-ja-ja-sõlme arhitektuuri. Keskus laadib testid ühte masinasse, samal ajal kui sõlmed käivitavad neid teistes, võimaldades kiiremat brauseriteülest katvust käsurea või JSON-konfiguratsiooni kaudu.

  • 🧩 Ruudustiku määratlus: Käitab teste brauserites, operatsioonisüsteemides ja masinates paralleelselt jaoturi ja sõlmede kaudu.
  • 🎯 Rummu: Üks keskne masin, kuhu teste laaditakse; ainult üks jaotur võrgu kohta.
  • 🖥️ Sõlmed: Üks või mitu masinat, mis tegelikult erinevatel platvormidel teste teostavad.
  • ⚙️ Setup: Käivitage Selenium Serveri jar-fail valikutega -role hub ja -role node või kasutage JSON-konfiguratsioonifaili.
  • 🧪 Testi skriptid: Kasutage brauseri, operatsioonisüsteemi ja sõlme sihtimiseks funktsioone DesiredCapabilities ja RemoteWebDriver.
  • Millal kasutada: Laiaulatuslikud brauseri ja operatsioonisüsteemi ühilduvuskontrollid ning kiirem paralleelne tarkvarakomplekti käivitamine.

Selenium Ruudustiku õpetus

Mis on Selenium Võrk?

Selenium võre on osa Selenium Suite, mis on spetsialiseerunud mitme testimise paralleelsele käitamisele erinevates brauserites, operatsioonisüsteemides ja masinates. See saavutatakse kaugbrauseri eksemplaride käskude suunamisega, kus server toimib jaoturina. Kasutaja peab testide läbiviimiseks kaugserveri konfigureerima.

Selenium Gridil on 2 versiooni – vanem Grid 1 ja uuem Grid 2. Keskendume ainult Grid 2-le, kuna Grid 1 on järk-järgult kasutusest loobunud. Selenium Meeskond

Selenium võre Architektuur

Selenium Gridil on jaotur ja sõlm Architektuur.

Selenium võre Architektuur
Selenium võre Architektuur

Keskus

  • Jaotur on keskne koht, kuhu testid laadite.
  • Võrgustikus peaks olema ainult üks jaotur.
  • Jaotur käivitatakse ainult ühes masinas, näiteks arvutis, mille OS on Windows 7 ja mille brauser on IE.
  • Jaoturit sisaldav masin on koht, kus testid käitatakse, kuid näete, et sõlmes on brauser automatiseeritud.

Sõlmed

  • Sõlmed on Selenium eksemplare, mis käivitavad jaoturisse laaditud testid.
  • Võrgustikus võib olla üks või mitu sõlme.
  • Sõlme saab käivitada mitmel erineva platvormi ja brauseriga masinal.
  • Sõlme käitavad masinad ei pea olema samal platvormil kui jaoturil.

Selenium Grid kasutab jaoturi-sõlme kontseptsiooni, kus testitakse ainult ühes masinas nimega a keskus, kuid täitmist viivad läbi erinevad masinad, mida kutsutakse sõlmed.

Kuidas seadistada Selenium Võrk?

Selles jaotises kasutate 2 masinat. Esimene masin on süsteem, mis käivitab jaoturi, samas kui teine ​​masin töötab sõlme. Lihtsuse huvides nimetagem masinat, kus jaotur töötab, "masinaks A", samas kui masinat, kus sõlm töötab, nimetatakse "masinaks B". Samuti on oluline märkida nende IP-aadressid. Oletame, et masina A IP-aadress on 192.168.1.3, samas kui masina B IP-aadress on 192.168.1.4.

Step 1) Lae alla Selenium Server asukohast siin.

Set Up Selenium võre

Step 2) Saate paigutada Selenium Serveri .jar-fail kõikjal teie kõvakettal. Kuid selle õpetuse jaoks asetage see nii masina A kui ka masina B C-kettale. Pärast seda olete installimise lõpetanud Selenium Võre. Järgmised sammud käivitavad jaoturi ja sõlme.

Step 3)

  • Nüüd käivitame keskuse. Avage masin A. Navigeerige käsuviiba abil masina A – C draivi juure, kuna see on kataloog, kuhu me Selenium Server.
  • Tippige käsureale java -jar seleen-server-standalone-2.30.0.jar -role hub
  • Jaotur peaks olema edukalt käivitatud. Teie käsuviip peaks välja nägema sarnane allolevale pildile.

Set Up Selenium võre

Step 4) Teine viis jaoturi töötamise kontrollimiseks on kasutada brauserit. Selenium Grid kasutab veebiliidese jaoks vaikimisi masina A porti 4444. Lihtsalt avage brauser ja minge aadressile http://localhost:4444/grid/console

Set Up Selenium võre

Samuti saate kontrollida, kas masin B pääseb juurde jaoturi veebiliidesele, käivitades seal brauseri ja minnes kohta, kus "iporhostnameofmachineA" peaks olema selle masina IP-aadress või hostinimi, kus jaotur töötab. Kuna masina A IP-aadress on 192.168.1.3, peaksite masina B brauseris tippima http://192.168.1.3:4444/grid/console

Step 5)

  • Nüüd, kui jaotur on juba seadistatud, käivitame sõlme. Minge masinasse B ja käivitage seal käsuviip.
  • Liikuge draivi C juure ja tippige allolev kood. Kasutasime IP-aadressi 192.168.1.3, kuna see on koht, kus jaotur töötab. Kasutasime ka porti 5566, kuigi võite valida mis tahes soovitud tasuta pordinumbri.
  • MÄRKUS. Kui kasutate, peate nüüd andma Gecko draiverile tee Firefox. Siin on värskendatud kood, mida tuleb kasutada
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 võre

  • Kui vajutate sisestusklahvi, peaks teie käsuviip olema sarnane allolevale pildile.

Set Up Selenium võre

Step 6) Mine Selenium Võrgustiku veebiliides ja värskendage lehte. Peaksite nägema midagi sellist.

Set Up Selenium võre

Siinkohal olete juba lihtsa ruudustiku konfigureerinud. Nüüd olete valmis masinas B kaugtesti käivitama.

Millal kasutada Selenium Võrk?

Sa peaksid kasutama Selenium Ruudustik, kui soovite teha ühte või mõlemat järgmistest:

  • Käivitage oma testid erinevate brauserite, operatsioonisüsteemide ja masinatega korraga. See tagab, et rakendus olete Testimine ühildub täielikult paljude brauseri-OS-i kombinatsioonidega.
  • Säästke aega oma testkomplektide täitmisel. Kui seadistate Selenium Võrgustik, et käivitada näiteks 4 testi korraga, siis suudaksite kogu komplekti umbes 4 korda kiiremini lõpetada.

Grid 1.0 vs Grid 2.0

Allpool on toodud peamised erinevused Selenium Ruudustik 1 ja 2.

Võrgustik 1 Võrgustik 2
Selenium Grid 1-l on oma kaugjuhtimispult, mis erineb Selenium RC server. Need on kaks erinevat programmi. Selenium Grid 2 on nüüd komplekteeritud Selenium Serveri jar-fail
Peate installima ja konfigureerima Apache Sipelgas, enne kui saate ruudustikku 1 kasutada. Te ei pea Grid 2-sse installima Apache Ant.
Saab ainult toetada Selenium RC käsud/skriptid. Saab toetada mõlemat Selenium RC ja WebDriver skriptid.
Ühe kaugjuhtimispuldi kohta saate automatiseerida ainult ühe brauseri. Üks kaugjuhtimispult võib automatiseerida kuni 5 brauserit.

Selenium võre saab seadistada kahel erineval viisil; üks läbi käsurea ja teine ​​läbi JSON konfiguratsioonifaili.

Võrgustikus töötavate testskriptide kujundamine

Võrgustikus töötavate testskriptide kavandamiseks peame kasutama Soovitud võimalused ja RemoteWebDriver objektid.

  • Soovitud võimalused kasutatakse tüübi määramiseks brauseri ja OS et me automatiseerime.
  • RemoteWebDriver kasutatakse selleks, et määrata, millise sõlme (või masina) vastu meie test töötab.

Et kasutada Soovitud võimalused objekti, peate esmalt selle paketi importima

Võrgustikus töötavate testskriptide kujundamine

Et kasutada RemoteWebDriver objekti, peate need paketid importima.

Võrgustikus töötavate testskriptide kujundamine

Objekti DesiredCapabilites kasutamine

Avage Gridi veebiliides ja hõljutage kursorit selle brauseri pildil, mida soovite automatiseerida. Võtke teadmiseks Platvorm ja brauseri nimi näitab kohtspikker.

Objekti DesiredCapabilites kasutamine

Sel juhul on platvorm "XP" ja brauseri nimi "Firefox. "

Kasutame oma WebDriveris platvormi ja brauseri nime, nagu allpool näidatud (muidugi peate esmalt importima vajalikud paketid).

Objekti DesiredCapabilites kasutamine

RemoteWebDriveri objekti kasutamine

Importige RemoteWebDriveri jaoks vajalikud paketid ja seejärel edastage objekt DesiredCapabilities, mille lõime ülalpool RemoteWebDriveri objekti parameetrina.

RemoteWebDriveri objekti kasutamine

Näidistesti käivitamine võrgus

Allpool on lihtne veebidraiver Testng kood, mille saate luua Eclipse masinal A. Kui olete selle käivitanud, teostatakse masinas B automatiseerimine.

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 peaks läbima.

Testi näidisjuhtumi käivitamine ruudustikul Testi näidisjuhtumi käivitamine ruudustikul

Selenium võrgu konfigureerimine JSON-faili abil

JSON tähistab Javascript Objekti tähistus. See on standardvorming, mida kasutatakse brauseri ja veebiserveri vaheliseks andmevahetuseks. Selenium sisaldab sisseehitatud JSON-i konfiguratsioonifaili, mida saab kasutada seleenivõrgu seadistamiseks.

Allpool on toodud juhised seleenivõrgu konfigureerimiseks JSON-i konfiguratsioonifaili abil.

Step 1) Laadige alla JSON-i konfiguratsioonifaili kood, kasutades allolevat teed

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

Siin on kood

{
	  "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) Kopeerige ja kleepige kood laiendiga ".json" tekstiredaktorisse, näiteks Notepadi

Step 3) Käivitage jaotur, kasutades käsuviipa allolevat käsku

java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json

MÄRKUS: Selenium eraldiseisev jar-fail ja json-fail peavad asuma samas kataloogis

Step 4) Ilmub allolev ekraan, mis näitab, et jaotur on edukalt seadistatud

Selenium Võrgustiku konfigureerimine JSON-faili abil

Step 5) Ava veebibrauser ja proovi luua ühendus allolevaga URL

http://192.168.43.223:4444/grid/console

MÄRKUS: . URL võivad masinati erineda. URL millele järgneb ülaltoodud ekraanil valik „Sõlmed peaksid registreeruma”.

Step 6) Ilmub võrgukonsooli ekraan, mis näitab, et jaotur on valmis ja töötab

Selenium Võrgustiku konfigureerimine JSON-faili abil

Seadistage sõlmed JSON-i abil

Step 1) Laadige alla näidissõlme konfiguratsioonifail, mille pakub Selenium kasutades allpool olevat URL

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

MÄRKUS: KUI KASUTATE SELENIUM 3.0 VÕI vanemat, TULEB KASUTADA ALLolevat JSON-FAILI

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

Step 2) Kopeerige ja kleepige kood tekstiredaktorisse (nt Notepad) ja salvestage fail laiendiga ".json".

Step 3)

Käivitage allolev käsk käsureal

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

MÄRKUS: Enne käsu käivitamist veenduge, et iga brauseri draiverid on kohaliku masina kataloogi alla laaditud

Step 4) Allolev ekraan ilmub sisestusklahvi vajutamisel

Konfigureerige sõlmed JSON-i abil

Step 5) Liikuge võrgukonsooli, et kontrollida, kas sõlmed on edukalt konfigureeritud

Konfigureerige sõlmed JSON-i abil

Brauserid kuvatakse võrgukonsoolil. Seega võime olla kindlad, et sõlmed on edukalt konfigureeritud.

Näidistesti juhtumid on sisse lülitatud Selenium Võrgustik:

 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");
         }

     }

 }

Ülaltoodud kood käivitab Chrome'i brauseri ja navigeerib sinna URL määratud 'baasis'URL'muutuja. See kinnitas, et lehel kuvatakse lingi nimi 'Mobiilne testimine'

URL sõlme pealURLMuutujat saab muuta nii, et see kajastaks kaugarvuti IP-aadressi. Testi tulemust saab kontrollida vaikeseadetes. TestNG aruanne loodud

KKK

Keskus on üks keskne masin, kuhu laaditakse teste ja hallatakse võrku. Sõlmed on masinad, mis tegelikult teste konkreetsetel brauserite ja operatsioonisüsteemide kombinatsioonidel käitavad. Võrgul on üks keskus ja üks või mitu sõlme.

Grid 1 kasutab eraldi kaugjuhtimispulti ja nõuab Apache Ant'i, mis toetab ainult Selenium RC-skriptid ja üks brauser juhtelemendi kohta. Grid 2 on komplektis Selenium Serveri jar-fail, ei vaja Ant'i ja toetab nii RC kui ka WebDriver skripte.

Loo DesiredCapabilities objekt, määra selle brauseri nimi (browserName) ja platvorm ning seejärel edasta see sõlmele osutavale RemoteWebDriverile. URLRuudustik suunab testi sellele brauserile ja operatsioonisüsteemile vastavasse sõlme.

Tehisintellekt suudab teste tähtsuse järjekorda seada ja paralleelselt käivitada, ennustada ebaühtlaseid teste, tasakaalustada koormust sõlmede vahel ja ise parandada vigaseid lokaatoreid. See vähendab täitmisaega ja hooldustöid suurtes võrkudes, mis käitavad paljusid brauseri-operatsioonisüsteemi kombinatsioone.

Jah. Tehisintellekti tööriistad oskavad soovitada optimaalset sõlmede arvu, genereerida JSON-konfiguratsioone, automaatselt skaleerida pilvevõrke järjekorra pikkuse põhjal ja tuvastada alakasutatud võimsust.ping meeskonnad haldavad suuri sviite tõhusalt ilma käsitsi häälestamiseta.

Võta see postitus kokku järgmiselt: