Selenium Tutorial sulla griglia: configurazione di un hub e di un nodo (esempio)
Cosa รจ Selenium Griglia?
Selenium Griglia รจ una parte del Selenium Suite specializzata nell'esecuzione di piรน test su diversi browser, sistemi operativi e macchine in parallelo. Si ottiene instradando i comandi delle istanze del browser remoto in cui un server funge da hub. Un utente deve configurare il server remoto per eseguire i test.
Selenium Grid ha 2 versioni: la vecchia Grid 1 e la piรน recente Grid 2. Ci concentreremo solo su Grid 2 perchรฉ Grid 1 verrร gradualmente deprecato dal Selenium Squadra.
Selenium Griglia Architectura
Selenium La griglia ha un hub e un nodo Architectura.

Hub
- L'hub รจ il punto centrale in cui carichi i tuoi test.
- Dovrebbe esserci un solo hub in una griglia.
- L'hub viene avviato solo su una singola macchina, ad esempio un computer il cui sistema operativo รจ Windows 7 e il cui browser รจ IE.
- La macchina contenente l'hub รจ il luogo in cui verranno eseguiti i test, ma vedrai il browser automatizzato sul nodo.
Nodes
- I nodi sono i Selenium istanze che eseguiranno i test caricati sull'hub.
- Possono esserci uno o piรน nodi in una griglia.
- I nodi possono essere avviati su piรน macchine con piattaforme e browser diversi.
- Non รจ necessario che le macchine che eseguono i nodi abbiano la stessa piattaforma di quella dell'hub.
Selenium Grid utilizza un concetto di nodo hub in cui esegui il test solo su una singola macchina chiamata a Hub, ma l'esecuzione verrร eseguita da diverse macchine chiamate nodi.
Come impostare Selenium Griglia?
In questa sezione utilizzerai 2 macchine. La prima macchina sarร il sistema che eseguirร l'hub mentre l'altra macchina eseguirร un nodo. Per semplicitร , chiamiamo la macchina su cui funziona l'hub come โMacchina Aโ mentre la macchina su cui gira il nodo sarร โMacchina Bโ. ร anche importante annotare i loro indirizzi IP. Diciamo che la Macchina A ha un indirizzo IP 192.168.1.3 mentre la Macchina B ha un IP 192.168.1.4.
Passo 1) Scarica la Selenium Server da Qui..
Passo 2) Puoi posizionare il Selenium File .jar del server ovunque nel tuo disco rigido. Ma ai fini di questo tutorial, posizionalo sull'unitร C sia della Macchina A che della Macchina B. Dopo averlo fatto, hai finito di installare Selenium Griglia. I seguenti passaggi avvieranno l'hub e il nodo.
Passo 3)
- Ora lanceremo un hub. Vai alla Macchina A. Utilizzando il prompt dei comandi, vai alla radice dell'unitร Macchina A - C, perchรฉ quella รจ la directory in cui abbiamo inserito il Selenium Server.
- Al prompt dei comandi, digitare java -jar selenium-server-standalone-2.30.0.jar -ruolo hub
- L'hub dovrebbe essere avviato correttamente. Il prompt dei comandi dovrebbe essere simile all'immagine seguente.
Passo 4) Un altro modo per verificare se l'hub รจ in esecuzione consiste nell'utilizzare un browser. Selenium La griglia, per impostazione predefinita, utilizza la porta 4444 della Macchina A per la sua interfaccia web. Basta aprire un browser e andare su http://localhost:4444/grid/console
Inoltre, puoi verificare se la Macchina B puรฒ accedere all'interfaccia web dell'hub avviando un browser e andando dove "iporhostnameofmachineA" dovrebbe essere l'indirizzo IP o il nome host della macchina su cui รจ in esecuzione l'hub. Poichรฉ l'indirizzo IP della Macchina A รจ 192.168.1.3, nel browser della Macchina B dovresti digitare http://192.168.1.3:4444/grid/console
Passo 5)
- Ora che l'hub รจ giร configurato, lanceremo un nodo. Vai alla Macchina B e avvia un prompt dei comandi da lรฌ.
- Passare alla radice dell'unitร C e digitare il codice seguente. Abbiamo utilizzato l'indirizzo IP 192.168.1.3 perchรฉ รจ lรฌ che รจ in esecuzione l'hub. Abbiamo utilizzato anche la porta 5566, anche se puoi scegliere qualsiasi numero di porta libera che desideri.
- NOTA: ora devi fornire il percorso al driver Gecko se lo usi Firefox. Ecco il codice aggiornato che deve essere utilizzato
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
- Quando premi Invio, il prompt dei comandi dovrebbe essere simile all'immagine seguente.
Passo 6) Vai Selenium Griglia dell'interfaccia web e aggiorna la pagina. Dovresti vedere qualcosa di simile.
A questo punto hai giร configurato una griglia semplice. Ora sei pronto per eseguire un test in remoto sulla Macchina B.
Quando usare Selenium Griglia?
Dovresti usare Selenium Griglia quando vuoi fare una o entrambe le seguenti cose:
- Esegui i tuoi test su diversi browser, sistemi operativi e macchine contemporaneamente. Ciรฒ garantirร che l'applicazione che stai utilizzando Collaudo รจ completamente compatibile con un'ampia gamma di combinazioni browser-sistema operativo.
- Risparmia tempo nell'esecuzione delle tue suite di test. Se imposti Selenium Griglia per eseguire, diciamo, 4 test alla volta, quindi sarai in grado di completare l'intera suite circa 4 volte piรน velocemente.
Griglia 1.0 contro Griglia 2.0
Di seguito sono riportate le principali differenze tra Selenium Griglia 1 e 2.
| Grid 1 | Grid 2 |
|---|---|
| Selenium Grid 1 ha il proprio telecomando diverso da quello Selenium Server RC. Sono due programmi diversi. | Selenium Grid 2 รจ ora in bundle con Selenium File jar del server |
| ร necessario installare e configurare Apache Formica prima di poter utilizzare la Griglia 1. | Non รจ necessario installare Apache Ant in Grid 2. |
| Puรฒ solo supportare Selenium Comandi/script RC. | Puรฒ supportare entrambi Selenium Script RC e WebDriver. |
| Puoi automatizzare un solo browser per telecomando. | Un telecomando puรฒ automatizzare fino a 5 browser. |
Selenium la griglia puรฒ essere impostata in due modi diversi; uno tramite la riga di comando e l'altro tramite il file di configurazione JSON.
Progettazione di script di test che possano essere eseguiti sulla griglia
Per progettare script di test che verranno eseguiti sulla griglia, dobbiamo utilizzare Capacitร desiderate e RemoteWebDriver oggetti.
- Capacitร desiderate viene utilizzato per impostare il tipo di del browser e OS che automatizzeremo.
- RemoteWebDriver viene utilizzato per impostare su quale nodo (o macchina) verrร eseguito il nostro test.
Per utilizzare l' Capacitร desiderate oggetto, devi prima importare questo pacchetto
Per utilizzare l' RemoteWebDriver oggetto, รจ necessario importare questi pacchetti.
Utilizzo dell'oggetto DesiredCapabilites
Vai all'interfaccia web di Grid e passa il mouse su un'immagine del browser che desideri automatizzare. Prendi nota del piattaforma, e browserName mostrato dal tooltip.
In questo caso, la piattaforma รจ โXPโ e il nome del browser รจ โFirefox. "
Utilizzeremo la piattaforma e il browserName nel nostro WebDriver come mostrato di seguito (ovviamente รจ necessario prima importare i pacchetti necessari).
Utilizzando l'oggetto RemoteWebDriver
Importa i pacchetti necessari per RemoteWebDriver e quindi passa l'oggetto DesiredCapabilities che abbiamo creato in precedenza come parametro per l'oggetto RemoteWebDriver.
Esecuzione di un caso di test di esempio sulla griglia
Di seguito รจ riportato un semplice WebDriver Test codice in cui puoi creare Eclipse sulla Macchina A. Una volta eseguita, l'automazione verrร eseguita sulla Macchina 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()); }
}
Il test dovrebbe essere superato.
![]() |
![]() |
Selenium configurazione della griglia utilizzando il file JSON
JSON sta per Javascript Notazione degli oggetti. ร un formato standard utilizzato per lo scambio di dati tra il browser e il server web. Selenium dispone di un file di configurazione JSON integrato che puรฒ essere utilizzato per impostare la griglia Selenium.
Di seguito sono riportati i passaggi per configurare la griglia del selenio utilizzando il file di configurazione JSON.
Passo 1) Scarica il codice per il file di configurazione JSON utilizzando il percorso seguente
Ecco il codice
{
"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
}
Passo 2) Copia e incolla il codice su un editor di testo come Blocco note con l'estensione ".json"
Passo 3)Avviare l'hub utilizzando il comando seguente utilizzando il prompt dei comandi
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
NOTA: Selenium il file jar autonomo e il file json devono essere presenti nella stessa directory
Passo 4) Apparirร la schermata seguente che indica che l'hub รจ stato configurato correttamente
Passo 5) Apri il browser web e prova a connetterti all'URL seguente
http://192.168.43.223:4444/grid/console
NOTA: L'URL puรฒ variare da macchina a macchina. ร necessario utilizzare l'URL seguito da "I nodi devono registrarsi su" nella schermata precedente.
Passo 6) Verrร visualizzata la schermata Grid Console che indica che l'hub รจ attivo e funzionante
Configura i NODI utilizzando JSON
Passo 1) Scarica il file di configurazione del nodo di esempio fornito da Selenium utilizzando l'URL seguente
NOTA: SE SI UTILIZZA SELENIUM 3.0 O SUPERIORE, ร NECESSARIO UTILIZZARE IL FILE JSON SOTTO
Passo 2) Copia e incolla il codice in un editor di testo come Blocco note e salva il file con l'estensione ".json"
Passo 3)
Esegui il comando seguente sul prompt dei comandi
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
NOTA: Prima di eseguire il comando, assicurati che i driver per ciascuno dei browser siano stati scaricati nella directory del computer locale
Passo 4) La schermata seguente verrร visualizzata quando si preme il tasto Invio
Passo 5) Passare alla console della griglia per verificare se i nodi sono stati configurati correttamente
I browser vengono visualizzati sulla console della griglia. Quindi possiamo essere sicuri che i nodi siano configurati correttamente.
Casi di test di esempio attivi Selenium Griglia:
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");
}
}
}
Il codice precedente avvia il browser Chrome e passa all'URL specificato nella variabile "baseURL". Ha verificato che nella pagina venga visualizzato il nome del collegamento "Test mobile".
L'URL sulla variabile "nodeURL" puรฒ essere modificato per riflettere l'indirizzo IP della macchina remota. Il risultato del test puรฒ essere verificato per impostazione predefinita TestNG rapporto generato
Sintesi
- Selenium Grid viene utilizzato per eseguire piรน test contemporaneamente su diversi browser e piattaforme.
- La griglia utilizza il concetto di nodo hub.
- L'hub รจ il punto centrale in cui carichi i tuoi test.
- I nodi sono i Selenium istanze che eseguiranno i test caricati sull'hub.
- Per installare Selenium Grid, devi solo scaricare il file Selenium File jar del server: lo stesso file utilizzato durante l'esecuzione Selenium Prove RC.
- Esistono 2 modi per verificare se l'hub รจ in esecuzione: uno tramite il prompt dei comandi e l'altro tramite un browser.
- Per eseguire script di test sulla griglia, รจ necessario utilizzare gli oggetti DesiredCapabilities e RemoteWebDriver.
- DesiredCapabilites viene utilizzato per impostare il tipo di browser e sistema operativo che automatizzeremo.
- RemoteWebDriver viene utilizzato per impostare su quale nodo (o macchina) verrร eseguito il nostro test.







.png)






