Tutorial Selenium Grid: consigli essenziali e come impostarlo

Se sei un testatore o un web developer esperto, devi testare le tue applicazioni per bug e prestazioni in tutti i browser e sistemi operativi disponibili. Ma avendo a disposizione così tante dipendenze, non solo browser diversi, ma anche versioni differenti, sicuramente diventa un compito oneroso.

Prima di tutto, tutti questi processi devono essere automatizzati al massimo possibile perché nelle maggiori aziende, la creazione individuale di casi di test e pipeline sarebbe costosa, e la via più ovvia, ovvero la meno preferibile, mai considerata. Ed è qui che entra in gioco Selenium Grid, uno strumento di test automatizzazione server-based estremamente utilizzato.

Cos’è Selenium Grid?

Selenium Grid è uno strumento utilizzato per test paralleli e continui su più di un browser e di un ambiente. Permette di eseguire test in parallelo su macchine differenti contro browser e sistemi operativi diversi. L’obiettivo di Selenium Grid è distribuire la carica di esecuzione dei test su molte macchine, rendendola più rapida l’esecuzione di un gran numero di test.

L’architettura di Selenium Grid coinvolge principalmente un hub e molti nodi. Il hub agisce come punto nevralgico dove vengono inviate le richieste di test. I nodi sono le macchine (fisiche o virtuali) dove vengono eseguite le testate. Il hub indirizza le richieste di esecuzione dei test ai nodi corretti in base alle configurazioni desiderate del browser e del sistema operativo specificate nei script di test.

Selenium Grid supporta varie configurazioni e test distribuiti, inclusa l’esecuzione in parallelo e il testing delle capacità del browser selettive. Viene comunemente utilizzato in test automatizzati per garantire la compatibilità e la funzionalità tra differenti browser e piattaforme.

Perché Servono i Selenium Grid?

Siete probabilmente molto interessati a capire perché ne abbiamo bisogno. Osservando specificamente, fa parte della suite Selenium, che include anche altri software e funzionalità come Selenium WebDriver e Selenium IDE, e abbiamo visto come può supportare browser come Chrome, Microsoft Edge, Opera, Safari e tutte le loro versioni differenti insieme. Oltre a questo, può anche eseguire questi browser su multipli sistemi operativi, creando un’ambiente di test end-to-end. Essendo open-source, è anche disponibile gratuitamente e riceve le aggiornamenti e sviluppi più veloci con accessibility completa a tutte le informazioni.

Architettura di Selenium Grid

Ora spiegheremo l’architettura di Selenium Grid. Selenium Grid funziona con il modello Hub e Node, dove un Hub è connesso a molti nodi e può essere eseguito su varie macchine, browser e diverse versioni dei loro browser.

Il Hub agisce come punto nevralgico nel Selenium Grid, routing i comandi di test ai nodi. Inoltre, riceve richieste di test dal client e le dirige ai nodi richiesti. Il Hub viene avviato su una singola macchina con un sistema operativo definito e un browser con i browser di test completi e le loro versioni, così come con la possibilità di impostarlo su più dispositivi che eseguono il sistema operativo compatibile.

Selenium ha anche definito altri componenti nell’architettura, che vengono spiegati in dettaglio sul suo sito web, che possono essere utili per eseguire Selenium in modalità distribuita completa con router, sessioni e distributori ben definiti. Ora che abbiamo una sufficiente conoscenza di base di SeleniumGrid,

Selenium Grid può essere installato e utilizzato in 4 semplici passaggi

Passo 1

Nel passo 1, configuriamo rapidamente i prerequisiti.

Prima di tutto, dobbiamo assicurarci di essere in esecuzione laversione più recente diJava, ovvero Java 11 e successivi. questo può essere scaricato dal sito ufficiale.

Poi dovremoinstallare tutti i browser necessari che vogliamo testare. Utilizzeremo un driver per il browser Chrome con la versione 123 per accedere al browser Chrome. Inoltre, ricordare che le versioni del driver e del browser dovrebbero essere identiche per poter avviare i server Selenium. E infine, userò l’IDE Eclipse, poiché questa dimostrazione si baserà su Java. Questo IDE può essere scaricato dal sito ufficiale di Eclipse.

Per il prerequisito finale, saremmo costretti a scaricare l’ultima versione del server Selenium Grid dalla pagina ufficiale di Selenium.

Step 2

Adesso cominciamo al passo 2. Per questo secondo passo, ho creato una nuova cartella e mi ho messo il server Selenium e il driver Chrome che userò per questa dimostrazione.

Java

 

package Selenium_test1 ;
	import java.net.MalformedURLException;

	public class test1{

	String hubUrl ="https://10.20.31.20";
	String url ="https://www.world.co/search";
	WebDriver driver;
	public void setupGrid()
	{
	DesiredCapabilities ds= new DesiredCapabilities();
	ds.setCapability("browserName", "Chrome");
	try{
	driver = new RemoteWebDriver( new URL(hubUrl),ds);
	} catch (malformedURLException e){
	e.printSTackTrace();
	}
	driver.get(url);
	}
	public void pageTitleValidation(){
	String title = driver.getTitle();
	System.out.println("page title :" +title);
	}
	public static void main(String[] args)
	{
	test1 obj = new test1();
	obj.setupGrid();
	obj.pageTitleValidation();
	}
	}

Step 3

Adesso per il terzo passo, ho aperto Eclipse ID e usando WebDriver, ho scritto il mio caso di test. Verremo a capo di un nuovo progetto Maven tra gli altri. Inoltre, dovremo anche incollare il driver Chrome che verrà utilizzato in una determinata cartella qui. La versione del server Selenium in uso deve essere spostata sul percorso di questo progetto dalle步骤 che adesso seguirò. Posso scendere al nome del mio progetto, fare clic destro e andare su Configura build path. Da qui, posso scendere e configurare il percorso di compilazione, e sulla destra vedrò una possibilità chiamata aggiungi jaws esterni. Da qui posso aggiungere il server Selenium che sto usando.

Cliccare applicare e chiudere, e poi passiamo al passo 4.

Step 4

Adesso per il quarto passo, sono tornato nella cartella in cui ero al passo 2. qui, userò il prompt dei comandi.

questo rende molto semplice trovare la cartella ed è un processo semplice. Poiché questa è solo una macchina e un browser, userò il modo locale di Selenium Grid.

Ora il server si sta avviando. Aggiunge le dipendenze necessarie uno dopo l’altro, e il processo sta diventando completo. Ci ha dato un indirizzo particolare da raggiungere. Ora copierò questo indirizzo e tornerò al passo 3. Qui, nell’URL del hub, lo collocherò questo indirizzo, e dopo che il mio codice sarà completato, andrò al file e lo esecuterò come applicazione.

Bene, così come vedo che l’applicazione è in esecuzione, mi sposterò al mio browser Chrome, e collocherò l’indirizzo che mi è stato dato dalla riga di comando. Questo è il mio indirizzo Selenium e vedo che le sessioni sono in esecuzione. Nell’overview, posso vedere che sono state create tutte le stereotipologie per Chrome. E nelle sessioni, il mio caso di test predefinito è in esecuzione attivo. Anche voi potete vedere la pagina web.

Ruoli Grid

Il Grid è composto da sei componenti differenti che vi forniscono flessibilità per distribuire le esecuzioni di automazione di test in diversi modi. Puoi avviare ciascuno autonomamente così come li puoi gruppare in un hub o possiamo eseguirli su un singolo macchinario.

1. Stazionario

Integrando tutti i componenti Grid in maniera fluida, il modo stazionario opera come un’entità unica. Iniziando il modo stazionario, deployi agevolmente un Grid completamente operativo con un singolo comando, tutto all’interno di un processo singolo. E’ importante notare che stazionario è limitato alla esecuzione su un singolo macchinario.

Java

 

java -jar selenium-server-<version>.jar standalone

2. Hub e Nodo

Hub e nodo sono i componenti più popolari e ampiamente utilizzati. Permettono agli utenti di combinare macchinari differenti con sistemi operativi diversi e versioni del browser. Per questo, otterrete un’unico accesso per eseguire test WebDriver in diversi ambienti.

hub è composto da Router, Distributore, Event bus e Session Queue:

Java

 

java -jar selenium-server-<version>.jar hub

node rileva molti driver disponibili nel sistema di path.

Java

 

java -jar selenium-server-<version>.jar node

Riepilogo

In conclusione, Selenium Grid consente la esecuzione parallela di molti test in più browser e piattaforme, attraverso l’architettura hub-node. Il hub funge da repository centrale per la conservazione dei test, mentre i nodi agiscono come istanze di Selenium, eseguendo questi test come richiesto dal hub. L’installazione di Selenium Grid comprende il download del file jar del server Selenium, lo stesso file utilizzato per l’esecuzione dei test Selenium RC. Per verificare se il hub è operativo o meno, può essere ottenuto tramite il prompt dei comandi o un browser web. Per eseguire i script di test sulla Grid, è necessario utilizzare le istanze di DesiredCapabilities e RemoteWebDriver. DesiredCapabilities configura il tipo di browser e il sistema operativo per l’automazione, mentre RemoteWebDriver designa il nodo o il dispositivo per l’esecuzione dei nostri test.

Source:
https://dzone.com/articles/selenium-grid-tutorial