Selenium Ruudukko-opetusohjelma: Hubin ja solmun määrittäminen

⚡ Älykäs yhteenveto

Selenium Grid suorittaa useita testejä rinnakkain eri selaimissa, käyttöjärjestelmissä ja koneissa käyttäen hub-and-node-arkkitehtuuria. Hub lataa testit yhdelle koneelle, kun taas solmut suorittavat ne toisilla, mikä mahdollistaa nopeamman selainten välisen kattavuuden komentorivin tai JSON-konfiguraation kautta.

  • 🧩 Ruudukko määritelty: Suorittaa testejä eri selaimissa, käyttöjärjestelmissä ja koneissa rinnakkain keskittimen ja solmujen kautta.
  • 🎯 Hub: Yksi keskuskone, johon lataat testit; vain yksi keskitin ruudukkoa kohden.
  • 🖥️ solmut: Yksi tai useampi kone, joka itse asiassa suorittaa testit eri alustoilla.
  • ⚙️ Setup: Käynnistä Selenium Palvelimen jar-tiedosto, jossa on -role hub ja -role node, tai käytä JSON-määritystiedostoa.
  • 🧪 Testiskriptit: Käytä DesiredCapabilities- ja RemoteWebDriver-kohteita kohdistaaksesi selaimeen, käyttöjärjestelmään ja solmuun.
  • ⏱️ Milloin käyttää: Laajat selain-käyttöjärjestelmäyhteensopivuustarkistukset ja nopeampi rinnakkainen ohjelmistopakettien suoritus.

Selenium Ruudukko-opetusohjelma

Mikä on Selenium Verkko?

Selenium ruudukko on osa Selenium Suite, joka on erikoistunut useiden testien suorittamiseen eri selaimissa, käyttöjärjestelmissä ja koneissa rinnakkain. Se saavutetaan reitittämällä etäselainesiintymien komennot, joissa palvelin toimii keskittimenä. Käyttäjän on määritettävä etäpalvelin suorittaakseen testit.

Selenium Gridillä on 2 versiota – vanhempi Grid 1 ja uudempi Grid 2. Keskitymme vain Grid 2:een, koska Grid 1 on vähitellen vanhentunut. Selenium Tiimi.

Selenium ruudukko Archirakenne

Selenium Gridissä on keskitin ja solmu Archirakenne.

Selenium ruudukko Archirakenne
Selenium ruudukko Archirakenne

Napa

  • Keskitin on keskipiste, johon lataat testit.
  • Verkossa saa olla vain yksi napa.
  • Keskitin käynnistetään vain yhdelle koneelle, esimerkiksi tietokoneelle, jonka käyttöjärjestelmä on Windows 7 ja jonka selain on IE.
  • Keskittimen sisältävä kone on paikka, jossa testit suoritetaan, mutta näet selaimen olevan automatisoitu solmussa.

solmut

  • Solmut ovat Selenium esiintymiä, jotka suorittavat keskittimeen lataamasi testit.
  • Verkossa voi olla yksi tai useampi solmu.
  • Solmut voidaan käynnistää useilla koneilla eri alustoilla ja selaimilla.
  • Solmuja pyörittävien koneiden ei tarvitse olla samalla alustalla kuin keskittimellä.

Selenium Grid käyttää hub-node-konseptia, jossa testataan vain yhdellä koneella nimeltä a napa, mutta suorituksen suorittavat eri koneet nimeltä solmut.

Kuinka asentaa Selenium Verkko?

Tässä osiossa käytät 2 konetta. Ensimmäinen kone on järjestelmä, joka suorittaa keskittimen, kun taas toinen kone käyttää solmua. Yksinkertaisuuden vuoksi kutsutaan konetta, jossa napa toimii, nimellä "kone A", kun taas konetta, jossa solmu toimii, kutsutaan "koneeksi B". On myös tärkeää huomata heidän IP-osoitteensa. Oletetaan, että koneen A IP-osoite on 192.168.1.3, kun taas koneen B IP-osoite on 192.168.1.4.

Vaihe 1) Lataa Selenium Palvelin täältä.

perustettu Selenium ruudukko

Vaihe 2) Voit sijoittaa Selenium Palvelimen .jar-tiedosto missä tahansa kiintolevylläsi. Mutta tätä opetusohjelmaa varten aseta se sekä koneen A että koneen B C-asemaan. Kun olet tehnyt tämän, olet nyt asentanut Selenium Ruudukko. Seuraavat vaiheet käynnistävät keskittimen ja solmun.

Vaihe 3)

  • Aiomme nyt käynnistää hubin. Siirry koneeseen A. Siirry komentokehotteen avulla koneen A – C-aseman juureen, koska se on hakemisto, johon sijoitimme Selenium Palvelimelle.
  • Kirjoita komentokehotteeseen java -jar seleeni-server-standalone-2.30.0.jar -role hub
  • Keskittimen pitäisi käynnistyä onnistuneesti. Komentokehotteen pitäisi näyttää samanlaiselta kuin alla oleva kuva.

perustettu Selenium ruudukko

Vaihe 4) Toinen tapa tarkistaa, onko keskus käynnissä, on käyttää selainta. Selenium Grid käyttää oletusarvoisesti koneen A porttia 4444 verkkoliittymänä. Avaa vain selain ja siirry osoitteeseen http://localhost:4444/grid/console

perustettu Selenium ruudukko

Voit myös tarkistaa, pääseekö Kone B käyttämään keskittimen verkkokäyttöliittymää käynnistämällä siellä selaimen ja menemällä kohtaan, jossa "iporhostnameofmachineA" tulee olla sen koneen IP-osoite tai isäntänimi, jossa keskitin on käynnissä. Koska koneen A IP-osoite on 192.168.1.3, kirjoita koneen B selaimeen http://192.168.1.3:4444/grid/console

Vaihe 5)

  • Nyt kun keskitin on jo määritetty, käynnistämme solmun. Siirry koneeseen B ja käynnistä siellä komentokehote.
  • Siirry Driven C juureen ja kirjoita alla oleva koodi. Käytimme IP-osoitetta 192.168.1.3, koska siellä keskitin toimii. Käytimme myös porttia 5566, vaikka voit valita minkä tahansa ilmaisen portin numeron.
  • HUOMAA: Sinun on nyt annettava polku Gecko-ohjaimelle, jos käytät sitä Firefox. Tässä on päivitetty koodi, jota on käytettävä
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

perustettu Selenium ruudukko

  • Kun painat Enter, komentokehotteen tulee olla samanlainen kuin alla oleva kuva.

perustettu Selenium ruudukko

Vaihe 6) Siirry Selenium Grid web-käyttöliittymä ja päivitä sivu. Sinun pitäisi nähdä jotain tällaista.

perustettu Selenium ruudukko

Tässä vaiheessa olet jo määrittänyt yksinkertaisen ruudukon. Olet nyt valmis suorittamaan etätestin koneella B.

Milloin käyttää Selenium Verkko?

Sinun pitäisi käyttää Selenium Ruudukko, kun haluat tehdä jommankumman tai molemmat seuraavista:

  • Suorita testit eri selaimilla, käyttöjärjestelmillä ja koneilla samanaikaisesti. Tämä varmistaa, että sovellus olet Testaus on täysin yhteensopiva useiden selain-käyttöjärjestelmän yhdistelmien kanssa.
  • Säästä aikaa testiohjelmistojesi suorittamisessa. Jos määrität Selenium Grid suorittaa vaikka 4 testiä kerrallaan, niin pystyt suorittamaan koko sarjan noin 4 kertaa nopeammin.

Grid 1.0 vs Grid 2.0

Seuraavassa on tärkeimmät erot Selenium Ruudukko 1 ja 2.

Ruudukko 1 Ruudukko 2
Selenium Grid 1:llä on oma kaukosäädin, joka eroaa Selenium RC-palvelin. Ne ovat kaksi eri ohjelmaa. Selenium Grid 2 on nyt mukana Selenium Palvelimen jar-tiedosto
Sinun on asennettava ja määritettävä Apache Ant ensin, ennen kuin voit käyttää ruudukkoa 1. Sinun ei tarvitse asentaa Apache Ant Grid 2:een.
Voi vain tukea Selenium RC-komennot/skriptit. Voi tukea molempia Selenium RC- ja WebDriver-skriptit.
Voit automatisoida vain yhden selaimen kaukosäädintä kohden. Yksi kaukosäädin voi automatisoida jopa 5 selainta.

Selenium ruudukko voidaan asettaa kahdella eri tavalla; yksi komentorivin kautta ja toinen JSON-määritystiedoston kautta.

Gridissä toimivien testikomentosarjojen suunnittelu

Suunnittelemme testikomentosarjat, jotka suoritetaan ruudukossa, meidän on käytettävä DesiredCapabilites ja RemoteWebDriver esineitä.

  • DesiredCapabilites käytetään tyypin asettamiseen selain ja OS että automatisoimme.
  • RemoteWebDriver käytetään määrittämään mitä solmua (tai konetta), jota vastaan ​​testimme suoritetaan.

Voit käyttää DesiredCapabilites objekti, sinun on ensin tuotava tämä paketti

Testiohjelmien suunnittelu, jotka voivat toimia ruudukossa

Voit käyttää RemoteWebDriver objekti, sinun on tuotava nämä paketit.

Gridissä toimivien testikomentosarjojen suunnittelu

DesiredCapabilites-objektin käyttäminen

Siirry Gridin verkkokäyttöliittymään ja vie hiiri sen selaimen kuvan päälle, jonka haluat automatisoida. Ota huomioon alustalla, ja selaimen nimi työkaluvihjeestä näkyy.

DesiredCapabilites-objektin käyttäminen

Tässä tapauksessa alusta on "XP" ja selaimen nimi on "Firefox"

Käytämme alustaa ja selaimen nimeä WebDriverissamme alla kuvatulla tavalla (tottakai sinun on ensin tuotava tarvittavat paketit).

DesiredCapabilites-objektin käyttäminen

RemoteWebDriver-objektin käyttäminen

Tuo tarvittavat paketit RemoteWebDriverille ja välitä sitten yllä luomamme DesiredCapabilities-objekti RemoteWebDriver-objektin parametrina.

RemoteWebDriver-objektin käyttäminen

Esimerkkitestitapauksen suorittaminen ruudukossa

Alla on yksinkertainen WebDriver Testng koodi, jonka voit luoda Eclipse Koneella A. Kun suoritat sen, koneella B suoritetaan automatisointi.

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

Testin pitäisi läpäistä.

Esimerkkitestitapauksen suorittaminen ristikossa Esimerkkitestitapauksen suorittaminen ristikossa

Selenium ruudukon määritys JSON-tiedoston avulla

JSON tarkoittaa Javascript Objektin merkintä. Se on standardimuoto, jota käytetään tietojen vaihtoon selaimen ja verkkopalvelimen välillä. Selenium on sisäänrakennettu JSON-määritystiedosto, jota voidaan käyttää seleeniruudukon määrittämiseen.

Alla on vaiheet seleeniruudukon määrittämiseksi JSON-määritystiedoston avulla.

Vaihe 1) Lataa JSON-määritystiedoston koodi alla olevaa polkua käyttämällä

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

Tässä on koodi

{
	  "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
}

Vaihe 2) Kopioi ja liitä koodi tekstieditoriin, kuten Notepadiin, jonka tunniste on .json.

Vaihe 3) Käynnistä keskitin käyttämällä alla olevaa komentoa komentokehotteessa

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

HUOMAUTUS: Selenium erillisen jar-tiedoston ja json-tiedoston on oltava samassa hakemistossa

Vaihe 4) Alla oleva näyttö tulee näkyviin, mikä osoittaa, että keskitin on asennettu onnistuneesti

Selenium Ruudukon määritys JSON-tiedoston avulla

Vaihe 5) Avaa verkkoselain ja yritä muodostaa yhteys alla olevaan URL

http://192.168.43.223:4444/grid/console

HUOMAUTUS: URL voivat vaihdella koneesta toiseen. URL ja sen jälkeen yllä olevalla näytöllä olevaa kohtaa 'Solmujen tulisi rekisteröityä kohteeseen' on käytettävä.

Vaihe 6) Grid Console -näyttö tulee näkyviin, mikä osoittaa, että keskitin on toiminnassa

Selenium Ruudukon määritys JSON-tiedoston avulla

Määritä solmut JSON:n avulla

Vaihe 1) Lataa mallin toimittama solmun määritystiedosto Selenium käyttämällä alla olevaa URL

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

HUOMAUTUS: JOS KÄYTETÄÄN SELENIUM 3.0 TAI UUDELLE, ALLA JSON TIEDOSTO ON KÄYTETTÄVÄ

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

Vaihe 2) Kopioi ja liitä koodi tekstieditoriin, kuten Notepadiin, ja tallenna tiedosto tunnisteella ".json".

Vaihe 3)

Suorita alla oleva komento komentokehotteessa

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

HUOMAUTUS: Ennen kuin suoritat komennon, varmista, että kunkin selaimen ohjaimet on ladattu paikalliseen konehakemistoon

Vaihe 4) Alla oleva näyttö tulee näkyviin, kun Enter-näppäintä painetaan

Määritä solmut JSON:n avulla

Vaihe 5) Siirry ruudukkokonsoliin ja tarkista, onko solmut määritetty onnistuneesti

Määritä solmut JSON:n avulla

Selaimet näkyvät ruudukkokonsolissa. Näin ollen voimme olla varmoja, että solmut on määritetty onnistuneesti.

Esimerkkitestitapaukset päällä Selenium Ruudukko:

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

     }

 }

Yllä oleva koodi käynnistää Chrome-selaimen ja siirtyy osoitteeseen URL määritelty 'pohjassa'URL'muuttuja. Se vahvisti, että sivulla näkyy linkki nimeltä 'Mobiilitestaus'.

URL solmullaURL'muuttujaa voidaan muokata vastaamaan etäkoneen IP-osoitetta. Testitulos voidaan varmistaa oletusarvoisesti TestNG raportti luotu

UKK

Hub on yksi keskuskone, johon lataat testejä ja hallinnoit gridiä. Solmut ovat koneita, jotka itse asiassa suorittavat testejä tietyillä selain- ja käyttöjärjestelmäyhdistelmillä. Gridissä on yksi hub ja yksi tai useampi solmu.

Grid 1 käyttää erillistä kaukosäädintä ja vaatii Apache Antin, joka tukee vain Selenium RC-skriptit ja yksi selain ohjausobjektia kohden. Grid 2 sisältyy Selenium Palvelin-jar-tiedosto, ei tarvitse Antia ja tukee sekä RC- että WebDriver-skriptejä.

Luo DesiredCapabilities-objekti, aseta sen browserName ja alusta ja välitä ne sitten solmun RemoteWebDriver-ajurille. URLRuudukko reitittää testin vastaavaan solmuun kyseiselle selaimelle ja käyttöjärjestelmälle.

Tekoäly voi priorisoida ja rinnakkaistaa testiajoja, ennustaa epätasaisia ​​testejä, tasata kuormitusta solmujen välillä ja korjata rikkinäisiä paikantimia. Tämä vähentää suoritusaikaa ja ylläpitotyötä suurissa grideissä, joissa on useita selain-käyttöjärjestelmäyhdistelmiä.

Kyllä. Tekoälytyökalut voivat suositella optimaalisia solmumääriä, luoda JSON-konfiguraatioita, skaalata pilviruudukoita automaattisesti jonon pituuden perusteella ja havaita vajaakäyttöistä kapasiteettia.ping tiimit pyörittävät suuria kokonaisuuksia tehokkaasti ilman manuaalista säätöä.

Tiivistä tämä viesti seuraavasti: