Impostazione di una griglia di selenio per il test del selenio distribuito



Questo blog ti aiuterà a capire la necessità di Selenium Grid e dei suoi benefici. Leggilo per configurare il tuo primo Selenium Grid configurando hub e nodi.

Gli altri blog di questa serie di tutorial Selenium parlano della creazione di casi di test e dell'esecuzione di tali casi di test in sequenza e in parallelo. Quindi, l'ultima tecnica lasciata alla discussione è l'esecuzione di casi di test su macchine remote. Selenium Grid può essere utilizzato per eseguire questi test su macchine / host remoti. Quindi, questo è l'argomento di discussione del blog di oggi.

  1. Perché e quando utilizzare Selenium Grid?
  2. Che cos'è la griglia di selenio?
  3. Selenium Grid 1 vs Selenium Grid 2
  4. Architettura della griglia di selenio
  5. Costruire una griglia di selenio

Perché e quando utilizzare la griglia di selenio?

Ci sono così tanti browser web che sono in uso oggi. Gli utenti potrebbero utilizzare Chrome o Firefox o Safari o Opera o anche Internet Explorer per leggere questo blog. È possibile che stiano utilizzando versioni diverse dei browser. Possono anche eseguire questi browser su qualsiasi sistema operativo, sia esso Windows o Mac o Ubuntu o qualsiasi altra distribuzione di Linux.





E se gli utenti vedessero qualcosa di importante su Internet? Qualcosa di importante per la tua attività. Non vorresti fare quel passo in più (testare l'app web) solo per assicurarti che i tuoi utenti e / o clienti ottengano la migliore esperienza utente? Lo faresti, vero?

Bene, dovresti!



Ma la domanda è: quanto è fattibile? Sarai in grado di passare del tempo a testare la tua app web su ogni possibile sistema operativo e ogni browser web disponibile? Hmm, sembra un po 'una sfida. È qui che Selenium Grid si adatta e aiutarisparmia tempo ed energia.

Oltre a ciò, sorge un'altra domanda: è fattibile creare un'infrastruttura di rete Selenium utilizzando sistemi locali? Mantenere una griglia con tutti i browser e sistemi operativi richiesti è una sfida. Per questo, ci sono più piattaforme online che forniscono una griglia di selenio online a cui puoi accedere per eseguire i tuoi script di automazione del selenio. Ad esempio, puoi usare LambdaTest . Ha più di 2000 ambienti browser su cui è possibile eseguire i test e testare tutti i browser in modo veramente automatico.

Che cos'è la griglia di selenio?

Selenium Grid è un altro strumento importante nella suite di strumenti Selenium. Grid è in grado di coordinare test WebDriver / test RC che possono essere eseguiti contemporaneamente su più browser Web o possono essere avviati su diversi sistemi operativi o persino ospitati su macchine diverse.



griglia di lavoro - griglia di selenioAllora, come funziona? Grid utilizza un'architettura Hub-Node in cui è presente un Hub, che funge da master e uno o più nodi che agiscono da slave.

Ciò significa che, se si dispone di un totale di 100 lavori / test da eseguire, i test possono essere eseguiti simultaneamente su 5 macchine, dove ciascuna macchina eseguirà 20 test. In effetti, puoi eseguire questi test in diverse combinazioni di sistemi operativi e browser. Ogni macchina qui può essere di un sistema operativo diverso e all'interno di ogni sistema operativo, i test possono essere eseguiti su browser diversi.

Questo atto risparmierebbe facilmente molto del tuo tempo nell'esecuzione del test. Se consideri l'esempio precedente, possiamo ridurre il tempo di esecuzione a circa 1/5 del tempo totale impiegato per eseguire i test su una singola macchina.

Se ricordi dai miei blog precedenti, ho menzionato un numero innumerevole di volte che Grid faceva parte del progetto Selenium sin dal suo inizio, cioè da Selenium v1. Selenium Grid faceva anche parte di Selenium v2 e attualmente fa parte di Selenium v3. Non c'è molta differenza tra la v2 e la v3 della Selenium Grid. Tuttavia, la v1 presenta molte differenze in confronto. Quindi, andiamocomprendere le differenze tra v1 e v2.

Selenium Grid 1 vs Selenium Grid 2

La differenza fondamentale tra Grid v1.0 e v2.0 è che RC è stato utilizzato in Grid 1 e WebDriver è stato utilizzato in Grid 2. La tabella seguente spiega le differenze in dettaglio.

Griglia 1 Griglia 2
Richiede l'installazione di Apache AntL'installazione di Apache Ant non è richiesta
Ha il proprio telecomando (Questo è diverso dal server RC)In bundle con il file jar Selenium Server
Supporta solo i comandi Selenium RCSupporta entrambi gli script Selenium RC e WebDriver
Puoi automatizzare un solo browser per telecomandoPuoi automatizzare fino a 5 browser per telecomando


Ora che abbiamo appreso le differenze fondamentali tra le due versioni, tuffiamoci in profondità in Selenium Grid.

Architettura Della Griglia Di Selenio

Come accennato in precedenza, Grid funziona sulla base di un hub e più nodi. Ma cosa sono Hub e Nodi e cosa fanno?

The Hub

In qualsiasi configurazione Grid, può esserci un solo Hub e questo sarà il punto centrale in quella configurazione Grid. Tutti i test che devono essere eseguiti dovrebbero essere caricati qui. Nonostante i test vengano caricati qui, verranno eseguiti solo sui nodi. Possiamo configurare qualsiasi macchina host come nostro Hub e coordinerà le attività di esecuzione dei test in altri host.

Affinché ciò avvenga, è necessario prima configurare l'hub, quindi creare altri nodi per la registrazione all'hub. Prima di entrare nei dettagli, lascia che ti mostri il comando per configurare l'Hub.

Configurazione dell'hub

È necessario prima di tutto scaricare il file JAR del server Selenium dal sito Web di Seleniumhq. Il collegamento è Qui . È inoltre necessario assicurarsi che Java sia installato nel sistema e che le variabili di ambiente siano impostate.

Dopo aver scaricato il file jar, è necessario posizionarlo in una directory appropriata. Per mia comodità, l'ho scaricato e inserito nella cartella Selenium in C Drive. Si consiglia di scaricare anche il file jar e di inserirlo in una directory simile in tutti gli altri nodi.

Per configurare l'Hub, è necessario eseguire il comando nel prompt dei comandi di Windows. Il comando è presente nello snippet di seguito.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

Il selenium-server-standalone-3.4.0.jar è il nome del file jar che ho scaricato.
Il -ruolo flag viene utilizzato per impostare quella particolare macchina host come Hub. Quando premi invio, otterrai l'output di seguito sullo schermo.

qual è la differenza tra java e c ++

Se non hai notato lo screenshot qui sopra, rivedilo. Dice ' -I nodi devono registrarsi su http://192.168.0.11:4444/grid/register '. Ora che l'Hub è configurato, dobbiamo configurare i Nodi e collegarli a questo Hub.

192.168.0.11 è l'indirizzo IP dell'hub e ogni nodo deve connettersi a questo indirizzo IP. 4444 è il numero di porta predefinito su cui Selenium Grid viene ospitato e ascolta le richieste. Se qualche altro servizio è in esecuzione sulla porta 4444 e desideri che Selenium Grid sia ospitato su un'altra porta, puoi farlo specificando il -porta flag seguito dal numero di porta.

I nodi

I nodi sono le macchine host su cui vengono eseguiti i test. Questi test saranno lanciati dall'Hub. L'hub può avviare uno o più nodi su macchine remote o sulla stessa macchina in cui si trova l'hub stesso. Su ciascuno dei nodi è possibile avviare diversi sistemi operativi e su diversi sistemi operativi possono essere avviate diverse versioni dello stesso browser o diversi browser.

Configurazione dei nodi

Simile all'Hub, è necessario prima scaricare il file Jar nelle macchine Node e posizionarlo nell'unità C o in qualsiasi altra directory comune per comodità. È quindi possibile eseguire il comando seguente nel prompt dei comandi di Windows. Se stai lanciando anche il nodo sulla stessa macchina del tuo Hub, devi eseguire il comando avviando un altro prompt dei comandi.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://192.168.0.11:4444/grid/register

Ci sono solo alcune differenze in questo comando rispetto al comando necessario per avviare l'Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe viene utilizzato per impostare il percorso del driver del browser. Simile all'impostazione del percorso del driver del browser nel codice WebDriver, lo specifichi qui in modo da consentire al Nodo di eseguire i test. Da Selenium v3 in poi, è necessario scaricare il browser dei driver per Firefox. Il driver del browser per Firefox è il driver Gecko. Tuttavia, nelle versioni 1 e 2, è necessario impostare il driver del browser per tutti i browser diversi da Firefox.
-role node flag viene utilizzato per impostare quella particolare macchina host come Node.
-hub http://192.168.0.11:4444/grid/register informa il nodo di connettersi all'hub utilizzando l'indirizzo IP dell'hub. Un punto importante da notare è che se stai avviando un nodo qualsiasi sulla stessa macchina del tuo Hub, puoi specificare ' -hub http: // localhost: 4444 / grid / register 'Nel comando invece dell'indirizzo IP dell'hub.

miglior java ide per windows

Quando premi Invio, otterrai l'output seguente nel prompt dei comandi.

A questo punto, il nodo sarebbe stato collegato all'Hub. Puoi verificarlo tornando al prompt dei comandi utilizzato per avviare l'hub e noterai il seguente messaggio: ' Ha registrato un nodo http://192.168.0.11:5555 '.

L'indirizzo IP e il numero di porta sono quelli del tuo Node. Dato che ho il mio nodo sulla stessa macchina del mio Hub, la porta usata per il nodo è 5555. Quando lo avvii su qualche altra macchina, verrà usata la porta predefinita.

Quando avvii il seguente URL nella macchina del tuo Hub, otterrai lo stato dei nodi collegati al tuo Hub. Vedi la parte evidenziata nello screenshot qui sotto.

Ora che la tua Selenium Grid è configurata, puoi procedere all'esecuzione degli script di test sui nodi. Permettetemi di sottolineare nuovamente che dobbiamo eseguire script nel nostro Hub e verranno eseguiti nei nostri nodi. Gli script utilizzati per eseguire i test sono simili a WebDrivertest.

Costruire una griglia di selenio

Ho eseguito il mio script in Eclipse IDE. L'esecuzione di questo script si basa su due importanti pacchetti di librerie. Sono DesiredCapabilities oggetto e RemoteWebDriver oggetto.

DesiredCapabilities viene utilizzato per impostare il tipo di browser e il sistema operativo del nostro Node. Per importare l'oggetto DesiredCapabilities, utilizzare il codice seguente.

import org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver viene utilizzato per selezionare il nodo su cui si desidera eseguire il test. Per importare l'oggetto RemoteWebDriver, utilizzare le seguenti righe di codice.

importare java.net.MalformedURLException importare java.net.URL importare org.openqa.selenium.remote.RemoteWebDriver

Ho importato questi due pacchetti insieme al pacchetto di annotazioni TestNG per il mio script, come mostrato nello snippet di codice seguente. Ho importato annotazioni TestNG perché l'ho eseguito come test TestNG per il quale verrà generato un rapporto dettagliato. Ti consiglio di importare lo stesso set di pacchetti per il tuo codice.

Quando ti muovi sui loghi di qualsiasi browser presente nella console Selenium Hub, otterrai dettagli come il browserName e il piattaforma del nodo che desideri automatizzare. L'immagine indica anche quante istanze dei browser posso aprire nel mio Node. Posso configurare un massimo di 5 istanze di Chrome, 5 Firefox e 1 istanza di Internet Explorer. Questi dettagli sono presenti nello screenshot qui sotto.

Puoi utilizzare il codice nello snippet di seguito per configurare il tuo primo Grid.

pacchetto GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver public class TestGrid {static WebDriver driver static String nodeUrl @BeforeTest public voidformed setup () throws nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilitiesabilities = DesiredCapabilities.chrome () cap .setBrowserName ('chrome') .setPlatform (Platform.WINDOWS) driver = new RemoteWebDriver (nuovo URL (nodeUrl ), capacità)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Ho diviso l'intero script di test in tre annotazioni di test. @BeforeTest, @Test e @AfterTest. In @BeforeTest, ho utilizzato gli oggetti DesiredCapablities e RemoteWebDriver per configurare il mio Node. In @Test, ho chiesto al nodo di accedere alla home page di Edureka e di affermare il titolo della pagina. In @AfterTest, ho chiesto al nodo di chiudere l'istanza del browser.

Quando il tuo test supera l'esecuzione, otterrai l'output seguente.

18 maggio 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFORMAZIONI: Dialetto rilevato: OSS PASSATO: simpleTest ===================== ========================== Test di default Test eseguiti: 1, Errori: 0, Salti: 0 ========== ===================================== ============= ================================== Suite predefinita Totale test eseguiti: 1, Errori: 0, Salti: 0 = ==============================================

Poiché questo viene eseguito come test TestNG, otterrai un rapporto di test dettagliato simile alla schermata seguente.

Se non sai cos'è TestNG e come utilizzare le annotazioni di prova, leggi il mio blog su come utilizzare Selenium WebDriver con TestNG da questa serie di tutorial sul selenio.

Puoi vedere il video qui sotto per assistere a una dimostrazione di come costruire una griglia di selenio. L'istruttore che consegna il video spiega gli stessi concetti spiegati in questo blog.

Esercitazione sulla griglia di selenio per principianti | Tutorial sul selenio | Edureka

Quindi, questo ci porta alla fine di questo blog Selenium Grid. Se hai dubbi o problemi con qualsiasi codice / contenuto di questa serie di blog, ti preghiamo di lasciarli nella sezione commenti qui sotto e risolverò il tuo problema al più presto.

Se desideri imparare il selenio e costruire una carriera nel dominio dei test, dai un'occhiata al nostro interattivo, live-online qui, viene fornito con supporto 24 * 7 per guidarti durante il tuo periodo di apprendimento.

Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.