Selenium Rutenettveiledning: Sett opp en hub og node (eksempel)
Hva er Selenium Nett?
Selenium Grid er en del av Selenium Suite som spesialiserer seg pรฅ รฅ kjรธre flere tester pรฅ tvers av forskjellige nettlesere, operativsystemer og maskiner parallelt. Det oppnรฅs ved รฅ rute kommandoene fra eksterne nettleserforekomster der en server fungerer som et knutepunkt. En bruker mรฅ konfigurere den eksterne serveren for รฅ utfรธre testene.
Selenium Grid har 2 versjoner โ den eldre Grid 1 og den nyere Grid 2. Vi vil kun fokusere pรฅ Grid 2 fordi Grid 1 gradvis blir avviklet av Selenium Team.
Selenium Grid Architecture
Selenium Grid har en Hub og Node Architecture.

Hub
- Navet er det sentrale punktet der du laster testene dine inn.
- Det skal bare vรฆre ett nav i et rutenett.
- Huben lanseres bare pรฅ en enkelt maskin, for eksempel en datamaskin som har OS Windows 7 og hvis nettleser er IE.
- Maskinen som inneholder huben er der testene skal kjรธres, men du vil se at nettleseren blir automatisert pรฅ noden.
Nodes
- Noder er Selenium forekomster som vil utfรธre testene du lastet inn pรฅ huben.
- Det kan vรฆre en eller flere noder i et rutenett.
- Noder kan lanseres pรฅ flere maskiner med forskjellige plattformer og nettlesere.
- Maskinene som kjรธrer nodene trenger ikke vรฆre den samme plattformen som navet.
Selenium Grid bruker et hub-node konsept hvor du bare kjรธrer testen pรฅ en enkelt maskin kalt a hub, men utfรธrelsen vil bli utfรธrt av forskjellige maskiner kalt noder.
Slik konfigurerer du Selenium Nett?
I denne delen skal du bruke 2 maskiner. Den fรธrste maskinen vil vรฆre systemet som skal kjรธre huben mens den andre maskinen kjรธrer en node. For enkelhets skyld, la oss kalle maskinen der navet kjรธrer som "Machine A", mens maskinen der noden kjรธrer vil vรฆre "Machine B." Det er ogsรฅ viktig รฅ merke seg deres IP-adresser. La oss si at Maskin A har IP-adressen 192.168.1.3 mens Maskin B har IP-adressen 192.168.1.4.
Trinn 1) Last ned Selenium Server fra her..
Trinn 2) Du kan plassere Selenium Server .jar-fil hvor som helst pรฅ harddisken. Men for formรฅlet med denne opplรฆringen, plasser den pรฅ C-stasjonen til bรฅde Maskin A og Maskin B. Etter รฅ ha gjort dette, er du nรฅ ferdig med รฅ installere Selenium Rutenett. Fรธlgende trinn vil starte huben og noden.
Trinn 3)
- Vi skal nรฅ lansere et knutepunkt. Gรฅ til Maskin A. Bruk ledeteksten og naviger til roten av Maskin A-C-stasjonen, fordi det er katalogen der vi plasserte Selenium Server.
- Skriv inn pรฅ ledeteksten java -jar selenium-server-standalone-2.30.0.jar -rolle hub
- Huben skal vรฆre vellykket lansert. Din ledetekst skal ligne pรฅ bildet nedenfor.
Trinn 4) En annen mรฅte รฅ bekrefte om huben kjรธrer pรฅ, er ved รฅ bruke en nettleser. Selenium Grid bruker som standard Maskin A sin port 4444 for sitt nettgrensesnitt. Bare รฅpne en nettleser og gรฅ til http://localhost:4444/grid/console
Du kan ogsรฅ sjekke om Maskin B har tilgang til hubens nettgrensesnitt ved รฅ starte en nettleser der og gรฅ til der "iporhostnameofmachineA" skal vรฆre IP-adressen eller vertsnavnet til maskinen der huben kjรธrer. Siden Maskin A sin IP-adresse er 192.168.1.3, bรธr du skrive inn i nettleseren pรฅ Maskin B. http://192.168.1.3:4444/grid/console
Trinn 5)
- Nรฅ som huben allerede er satt opp, skal vi lansere en node. Gรฅ til Maskin B og start en ledetekst der.
- Naviger til roten av Drive C og skriv inn koden nedenfor. Vi brukte IP-adressen 192.168.1.3 fordi det er der huben kjรธrer. Vi brukte ogsรฅ port 5566, men du kan velge hvilket som helst gratis portnummer du รธnsker.
- MERK: Du mรฅ nรฅ gi banen til Gecko-driveren hvis du bruker Firefox. Her er oppdatert kode som mรฅ brukes
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
- Nรฅr du trykker Enter, skal ledeteksten din ligne pรฅ bildet nedenfor.
Trinn 6) Gรฅ til Selenium Grid webgrensesnitt og oppdater siden. Du burde se noe slikt.
Pรฅ dette tidspunktet har du allerede konfigurert et enkelt rutenett. Du er nรฅ klar til รฅ kjรธre en test eksternt pรฅ Machine B.
Nรฅr skal du bruke Selenium Nett?
Du bรธr bruke Selenium Rutenett nรฅr du vil gjรธre ett eller begge av fรธlgende:
- Kjรธr testene dine mot forskjellige nettlesere, operativsystemer og maskiner samtidig. Dette vil sikre at programmet du er Testing er fullt kompatibel med et bredt spekter av nettleser-OS-kombinasjoner.
- Spar tid i gjennomfรธringen av testpakkene dine. Hvis du setter opp Selenium Rutenett for รฅ kjรธre for eksempel 4 tester om gangen, sรฅ vil du kunne fullfรธre hele suiten rundt 4 ganger raskere.
Grid 1.0 vs Grid 2.0
Fรธlgende er de viktigste forskjellene mellom Selenium Rutenett 1 og 2.
| Rutenett 1 | Rutenett 2 |
|---|---|
| Selenium Grid 1 har sin egen fjernkontroll som er forskjellig fra Selenium RC server. Det er to forskjellige programmer. | Selenium Grid 2 er nรฅ buntet med Selenium Server jar-fil |
| Du mรฅ installere og konfigurere Apache Ant fรธrst fรธr du kan bruke Grid 1. | Du trenger ikke รฅ installere Apache Ant i Grid 2. |
| Kan bare stรธtte Selenium RC-kommandoer/skript. | Kan stรธtte begge deler Selenium RC- og WebDriver-skript. |
| Du kan bare automatisere รฉn nettleser per fjernkontroll. | รn fjernkontroll kan automatisere opptil 5 nettlesere. |
Selenium rutenett kan settes opp pรฅ to forskjellige mรฅter; en gjennom kommandolinjen og den andre gjennom JSON-konfigurasjonsfilen.
Utforme testskript som kan kjรธres pรฅ nettet
For รฅ designe testskript som skal kjรธres pรฅ rutenettet, mรฅ vi bruke รnskede kapasiteter og RemoteWebDriver objekter.
- รnskede kapasiteter brukes til รฅ angi typen nett~~POS=TRUNC leseren~~POS=HEADCOMP og OS som vi skal automatisere.
- RemoteWebDriver brukes til รฅ angi hvilken node (eller maskin) testen vรฅr skal kjรธre mot.
For รฅ bruke รnskede kapasiteter objekt, mรฅ du fรธrst importere denne pakken
For รฅ bruke RemoteWebDriver objekt, mรฅ du importere disse pakkene.
Bruke DesiredCapabilites-objektet
Gรฅ til Grids nettgrensesnitt og hold musepekeren over et bilde av nettleseren du vil automatisere. Legg merke til plattform, og nettlesernavn vist av verktรธytipset.
I dette tilfellet er plattformen "XP" og nettleserens navn er "Firefoxยป.
Vi vil bruke plattformen og nettlesernavnet i vรฅr WebDriver som vist nedenfor (selvfรธlgelig mรฅ du importere de nรธdvendige pakkene fรธrst).
Bruke RemoteWebDriver-objektet
Importer de nรธdvendige pakkene for RemoteWebDriver og send deretter DesiredCapabilities-objektet som vi opprettet ovenfor som en parameter for RemoteWebDriver-objektet.
Kjรธre en prรธvetestsak pรฅ rutenettet
Nedenfor er en enkel WebDriver Testng kode som du kan lage i Eclipse pรฅ Maskin A. Nรฅr du kjรธrer den, vil automatisering utfรธres pรฅ Maskin 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()); }
}
Prรธven bรธr bestรฅ.
![]() |
![]() |
Selenium rutenettkonfigurasjon ved hjelp av JSON-fil
JSON stรฅr for Javascript Objektnotasjon. Det er et standardformat som brukes for utveksling av data mellom nettleseren og webserveren. Selenium har en innebygd JSON-konfigurasjonsfil som kan brukes til รฅ sette opp selennett.
Nedenfor er trinnene for รฅ konfigurere selennett ved hjelp av JSON-konfigurasjonsfilen.
Trinn 1) Last ned koden for JSON-konfigurasjonsfilen ved รฅ bruke banen nedenfor
Her er koden
{
"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
}
Trinn 2) Kopier og lim inn koden i et tekstredigeringsprogram som Notisblokk med utvidelsen '.json'
Trinn 3)Start huben ved รฅ bruke kommandoen nedenfor ved รฅ bruke ledeteksten
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
NOTAT: Selenium frittstรฅende jar-fil og json-filen mรฅ vรฆre til stede i samme katalog
Trinn 4) Skjermbildet nedenfor vil vises som indikerer at huben er satt opp
Trinn 5) ร pne nettleseren og prรธv รฅ koble til URL-en nedenfor
http://192.168.43.223:4444/grid/console
NOTAT: URL-en kan variere fra maskin til maskin. URL etterfulgt av 'Noder bรธr registreres til' pรฅ skjermen ovenfor mรฅ brukes.
Trinn 6) Grid Console-skjermbildet vises som indikerer at huben er oppe og gรฅr
Konfigurer NODES med JSON
Trinn 1) Last ned eksempelnodekonfigurasjonsfilen levert av Selenium ved รฅ bruke URL-en nedenfor
NOTAT: HVIS DU BRUKER SELENIUM 3.0 ELLER OVER, Mร JSON-FILEN NEDENFOR BRUKES
Trinn 2) Kopier og lim inn koden i et tekstredigeringsprogram som Notisblokk og lagre filen med filtypen '.json'
Trinn 3)
Kjรธr kommandoen nedenfor pรฅ ledeteksten
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
NOTAT: Fรธr du kjรธrer kommandoen, sรธrg for at driverne for hver av nettleserne er lastet ned til den lokale maskinkatalogen
Trinn 4) Skjermbildet nedenfor vil vises nรฅr enter-tasten trykkes
Trinn 5) Naviger til rutenettkonsollen for รฅ bekrefte om nodene har blitt konfigurert
Nettleserne vises pรฅ rutenettkonsollen. Derfor kan vi vรฆre sikre pรฅ at noder konfigureres vellykket.
Eksempel pรฅ testtilfeller pรฅ Selenium Nett:
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");
}
}
}
Koden ovenfor starter Chrome-nettleseren og navigerer til URL-en som er spesifisert i 'baseURL'-variabelen. Det bekreftet at et lenkenavn "Mobiltesting" vises pรฅ siden
URL pรฅ 'nodeURL'-variabelen kan endres for รฅ gjenspeile IP-adressen til den eksterne maskinen. Testresultat kan verifiseres pรฅ standard TestNG rapport generert
Sammendrag
- Selenium Grid brukes til รฅ kjรธre flere tester samtidig pรฅ forskjellige nettlesere og plattformer.
- Grid bruker hub-node-konseptet.
- Navet er det sentrale punktet der du laster testene dine.
- Noder er Selenium forekomster som vil utfรธre testene du lastet inn pรฅ huben.
- Slik installerer Selenium Grid, du trenger bare รฅ laste ned Selenium Server jar-fil โ den samme filen som brukes under kjรธring Selenium RC tester.
- Det er 2 mรฅter รฅ bekrefte om huben kjรธrer pรฅ: den ene var gjennom ledeteksten, og den andre var gjennom en nettleser.
- For รฅ kjรธre testskript pรฅ Grid, bรธr du bruke DesiredCapabilities og RemoteWebDriver-objektene.
- DesiredCapabilites brukes til รฅ angi hvilken type nettleser og operativsystem vi skal automatisere.
- RemoteWebDriver brukes til รฅ angi hvilken node (eller maskin) testen vรฅr skal kjรธre mot.







.png)






