Selenium Grid Tutorial: Keskittimen ja solmun määrittäminen (esimerkki)
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.

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ätä.
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.
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
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
- Kun painat Enter, komentokehotteen tulee olla samanlainen kuin alla oleva kuva.
Vaihe 6) Siirry Selenium Grid web-käyttöliittymä ja päivitä sivu. Sinun pitäisi nähdä jotain tällaista.
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
Voit käyttää RemoteWebDriver objekti, sinun on tuotava nämä paketit.
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.
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).
RemoteWebDriver-objektin käyttäminen
Tuo tarvittavat paketit RemoteWebDriverille ja välitä sitten yllä luomamme DesiredCapabilities-objekti RemoteWebDriver-objektin parametrina.
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ä.
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ä
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
Vaihe 5) Avaa verkkoselain ja yritä muodostaa yhteys alla olevaan URL-osoitteeseen
http://192.168.43.223:4444/grid/console
HUOMAUTUS: URL-osoite voi vaihdella koneesta toiseen. URL-osoite, jota seuraa "Solmujen tulisi rekisteröityä" yllä olevassa näytössä, on käytettävä.
Vaihe 6) Grid Console -näyttö tulee näkyviin, mikä osoittaa, että keskitin on toiminnassa
Määritä solmut JSON:n avulla
Vaihe 1) Lataa mallin toimittama solmun määritystiedosto Selenium käyttämällä alla olevaa URL-osoitetta
HUOMAUTUS: JOS KÄYTETÄÄN SELENIUM 3.0 TAI UUDELLE, ALLA JSON TIEDOSTO ON KÄYTETTÄVÄ
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
Vaihe 5) Siirry ruudukkokonsoliin ja tarkista, onko solmut määritetty onnistuneesti
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 'baseURL'-muuttujassa määritettyyn URL-osoitteeseen. Se vahvisti linkin nimen "Mobiilitestaus" näkyy sivulla
NodeURL-muuttujan URL-osoitetta voidaan muokata vastaamaan etäkoneen IP-osoitetta. Testitulos voidaan tarkistaa oletusarvoisesti TestNG raportti luotu
Yhteenveto
- Selenium Gridiä käytetään useiden testien suorittamiseen samanaikaisesti eri selaimilla ja alustoilla.
- Grid käyttää hub-node -konseptia.
- Keskitin on keskipiste, johon lataat testit.
- Solmut ovat Selenium esiintymiä, jotka suorittavat keskittimeen lataamasi testit.
- Voit asentaa Selenium Grid, sinun tarvitsee vain ladata Selenium Palvelimen jar-tiedosto – sama tiedosto, jota käytetään käynnissä Selenium RC testit.
- On kaksi tapaa tarkistaa, onko keskus käynnissä: toinen komentokehotteen kautta ja toinen selaimen kautta.
- Jos haluat suorittaa testikomentosarjat Gridissä, sinun tulee käyttää DesiredCapabilities- ja RemoteWebDriver-objekteja.
- DesiredCapabilitesilla asetetaan selain- ja käyttöjärjestelmä, jonka automatisoimme.
- RemoteWebDriveria käytetään määrittämään, mitä solmua (tai konetta) vastaan testimme suoritetaan.