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.

Selenium Griglia Architectura
Selenium Griglia 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..

Impostare Selenium Griglia

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.

Impostare Selenium Griglia

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

Impostare Selenium Griglia

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

Impostare Selenium Griglia

  • Quando premi Invio, il prompt dei comandi dovrebbe essere simile all'immagine seguente.

Impostare Selenium Griglia

Passo 6) Vai Selenium Griglia dell'interfaccia web e aggiorna la pagina. Dovresti vedere qualcosa di simile.

Impostare Selenium Griglia

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

Progettazione di script di test che possano essere eseguiti sulla griglia

Per utilizzare l' RemoteWebDriver oggetto, รจ necessario importare questi pacchetti.

Progettazione di script di test che possano essere eseguiti sulla griglia

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.

Utilizzo dell'oggetto DesiredCapabilites

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).

Utilizzo dell'oggetto DesiredCapabilites

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.

Utilizzo dell'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.

Esecuzione di un caso di test campione sulla griglia Esecuzione di un caso di test campione sulla griglia

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

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

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

Selenium Configurazione della griglia utilizzando il file JSON

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

Selenium Configurazione della griglia utilizzando il file JSON

Configura i NODI utilizzando JSON

Passo 1) Scarica il file di configurazione del nodo di esempio fornito da Selenium utilizzando l'URL seguente

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

NOTA: SE SI UTILIZZA SELENIUM 3.0 O SUPERIORE, รˆ NECESSARIO UTILIZZARE IL FILE JSON SOTTO

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

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

Configura i nodi utilizzando JSON

Passo 5) Passare alla console della griglia per verificare se i nodi sono stati configurati correttamente

Configura i nodi utilizzando JSON

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.

Riassumi questo post con: