Selenium Vodič za mrežu: Postavljanje čvorišta i čvora

⚡ Pametni sažetak

Selenium Grid paralelno pokreće više testova na preglednicima, operativnim sustavima i računalima koristeći arhitekturu čvorišta i čvora. Čvorište učitava testove na jednom računalu dok ih čvorovi izvršavaju na drugima, omogućujući bržu pokrivenost između preglednika putem naredbenog retka ili JSON konfiguracije.

  • 🧩 Definirana mreža: Paralelno provodi testove na više preglednika, operativnih sustava i računala putem čvorišta i čvorova.
  • 🎯 Središte: Jedan centralni stroj na kojem se učitavaju testovi; samo jedno središte po mreži.
  • 🖥️ čvorovi: Jedan ili više strojeva koji zapravo izvršavaju testove na različitim platformama.
  • Postaviti: Pokrenite Selenium JAR poslužitelja s -role hubom i -role nodeom ili upotrijebite JSON konfiguracijsku datoteku.
  • 🧪 Testni skripti: Koristite DesiredCapabilities i RemoteWebDriver za ciljanje preglednika, OS-a i čvora.
  • 🇧🇷 Kada koristiti: Široke provjere kompatibilnosti preglednika i operativnog sustava te brže paralelno izvršavanje paketa.

Selenium Vodič za mrežu

Š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.

Selenium rešetka Architektura
Selenium rešetka 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.

Postavljanje Selenium rešetka

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.

Postavljanje Selenium rešetka

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

Postavljanje Selenium rešetka

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

Postavljanje Selenium rešetka

  • Kada pritisnete Enter, vaš naredbeni redak trebao bi biti sličan slici ispod.

Postavljanje Selenium rešetka

Korak 6) Idi na Selenium Grid web sučelje i osvježite stranicu. Trebali biste vidjeti ovako nešto.

Postavljanje Selenium rešetka

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 i 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

Dizajniranje testnih skripti koje se mogu izvoditi na mreži

Za korištenje RemoteWebDriver objekt, morate uvesti ove pakete.

Dizajniranje testnih skripti koje se mogu izvoditi na mreži

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, i naziv preglednika prikazano opisom alata.

Korištenje objekta DesiredCapabilites

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 DesiredCapabilites

Korištenje objekta RemoteWebDriver

Uvezite potrebne pakete za RemoteWebDriver, a zatim proslijedite objekt DesiredCapabilities koji smo stvorili iznad kao parametar za objekt RemoteWebDriver.

Korištenje objekta 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.

Izvođenje uzorka testnog slučaja na mreži Izvođenje uzorka testnog slučaja na mrež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

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

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

Selenium Konfiguracija mreže pomoću JSON datoteke

Korak 5) Otvorite web preglednik i pokušajte se spojiti na dolje navedeno URL

http://192.168.43.223:4444/grid/console

NAPOMENA: The URL može varirati od stroja do stroja. URL nakon čega slijedi 'Čvorovi se trebaju registrirati na' na gornjem zaslonu.

Korak 6) Pojavit će se zaslon Grid Console koji označava da je čvorište pokrenuto i radi

Selenium Konfiguracija mreže pomoću JSON datoteke

Konfigurirajte NODES koristeći JSON

Korak 1) Preuzmite oglednu konfiguracijsku datoteku čvora koju pruža Selenium koristeći dolje navedeno URL

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

NAPOMENA: AKO KORISTITE SELENIUM 3.0 ILI NOVIJE, MORATE SE KORISTITI ISPOD JSON DATOTEKU

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

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

Konfigurirajte čvorove pomoću JSON-a

Korak 5) Idite do konzole rešetke da provjerite jesu li čvorovi uspješno konfigurirani

Konfigurirajte čvorove pomoću JSON-a

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

     }

 }

Gornji kod pokreće preglednik Chrome i vodi do URL navedeno u 'baznomURL' varijabla. Potvrđeno je da se na stranici prikazuje naziv poveznice 'Mobilno testiranje'

URL na 'čvoru'URL' varijabla se može modificirati kako bi odražavala IP adresu udaljenog računala. Rezultat testa može se provjeriti na zadanim postavkama TestNG izvješće generirano

Pitanja i odgovori

Središte (hub) je jedinstveno centralno računalo na kojem se učitavaju testovi i upravlja mrežom. Čvorovi su računala koja zapravo izvode testove na određenim kombinacijama preglednika i operativnih sustava. Mreža ima jedno središte i jedan ili više čvorova.

Grid 1 koristi zaseban daljinski upravljač i zahtijeva Apache Ant, podržavajući samo Selenium RC skripte i jedan preglednik po kontroli. Grid 2 dolazi u paketu s Selenium Serverski jar, ne treba Ant i podržava RC i WebDriver skripte.

Kreirajte objekt DesiredCapabilities, postavite njegov browserName i platformu, a zatim ga proslijedite RemoteWebDriveru usmjerenom na čvor URLMreža usmjerava test na odgovarajući čvor za taj preglednik i OS.

Umjetna inteligencija može prioritizirati i paralelno izvoditi testove, predviđati nestabilne testove, uravnotežiti opterećenje među čvorovima i samostalno popraviti oštećene lokatore. To smanjuje vrijeme izvršavanja i napore održavanja na velikim mrežama koje koriste mnoge kombinacije preglednika i operativnih sustava.

Da. Alati umjetne inteligencije mogu preporučiti optimalni broj čvorova, generirati JSON konfiguracije, automatski skalirati mreže u oblaku na temelju duljine reda čekanja i otkriti neiskorišteni kapacitet, pomoćping timovi učinkovito vode velike apartmane bez ručnog podešavanja.

Sažmite ovu objavu uz: