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.

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

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, a 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 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

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 donji 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 = "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.