selenium grid tutorial
Introduzione a Selenium Grid e come eseguire test cross browser utilizzando Selenium Grid:
Siamo ormai vicini alla fine di tutto questo serie completa di tutorial sul selenio . La prossima settimana, concluderemo questa serie online di formazione sul selenio con esercitazioni sulla 'stima dello sforzo dei progetti sul selenio' e sulle 'domande e risposte dell'intervista al selenio'.
Oggi, in questo tutorial, ti presenteremo Griglia di selenio - a esecuzione di test distribuita ambiente per velocizzare l'esecuzione di un test superato. Scopri come eseguire i test Cross browser utilizzando Selenium Grid.
Cosa imparerai:
- Qual è il bisogno della griglia di selenio?
- Benefici della griglia di selenio
- Installa Selenium GRID
- Browser e nodi
- maxInstances
- maxSession
- Codice di rete di esempio
- Configurazione tramite file JSON
- Conclusione
- Lettura consigliata
Qual è il bisogno della griglia di selenio?
Mentre procedi per intero Esercitazioni su Selenium WebDriver scoprirai che WebDriver eseguirà i tuoi casi di test su una singola macchina.
Ecco alcuni problemi con una tale configurazione:
- E se volessi eseguire i tuoi casi di test per diversi sistemi operativi?
- Come eseguire i test case nella diversa versione dello stesso browser?
- Come eseguire i tuoi casi di test in più browser?
- Perché uno scenario dovrebbe attendere l'esecuzione di altri casi di test anche se non dipende da alcun caso di test?
Tutti questi problemi sono affrontati in Selenium GRID.
Man mano che procediamo con il corso sul selenio, avremo l'idea di come superare questi problemi. Fondamentalmente, l'architettura Grid si basa sull'architettura master-slave. La macchina master distribuisce i casi di test a diverse macchine slave.
Sono disponibili 2 versioni di Grid. Selenium Grid 2.0 è l'ultima novità di Selenium. Selenium 1.0 era la versione precedente. La maggior parte degli esperti di Selenium preferisce utilizzare Selenium Grid 2.0 poiché è ricco di nuove funzionalità. Selenium Grid 2.0 supporta sia gli script Selenium RC che Selenium WebDriver.
Strumento consigliato:
# 1) LambdaTest
Esegui test di automazione del selenio su una griglia selenio online scalabile, sicura e affidabile basata su cloud. Accelera la tua automazione dei test Selenium allo stesso tempo aumenta la copertura dei test testando su un'infrastruttura online di 2000+ ambienti desktop e browser mobili.
Lettura suggerita = >> Automatizza i test del browser con LambdaTest
Benefici della griglia di selenio
- Selenium Grid offre la flessibilità di distribuire i test case per l'esecuzione.
- Riduce il tempo di elaborazione in batch.
- Può eseguire test multi-browser.
- Può eseguire test multi-OS.
Terminologia di base della griglia di selenio:
Centro : Hub è il punto centrale dell'intera architettura GRID che riceve tutte le richieste. C'è solo un hub nella griglia del selenio. Hub distribuisce i test case su ogni nodo.
Nodo : Possono esserci più nodi in Grid. I test verranno eseguiti nei nodi. Ogni nodo comunica con l'hub ed esegue il test ad esso assegnato.
Installa Selenium GRID
Passo 1 : Scarica il file jar Selenium Server dal sito web ufficiale di Selenium, precedentemente noto come Selenium RC Server e salvalo in qualsiasi posizione sul disco locale.
URL del quartier generale del selenio: http://www.seleniumhq.org/download/
Passo 2 : Aprire il prompt dei comandi e accedere a una cartella in cui si trova il server. Esegui il server utilizzando il comando seguente
java -jar selenium-server-standalone-2.41.0.jar -role hub
L'hub utilizzerà la porta 4444 per impostazione predefinita. Questa porta può essere modificata passando il diverso numero di porta nel prompt dei comandi a condizione che la porta sia aperta e non sia stata assegnata un'attività.
Lo stato può essere verificato utilizzando l'interfaccia web: http: // localhost: 4444 / grid / console
Passaggio 3 : Vai sull'altra macchina in cui intendi configurare i nodi. Apri il prompt dei comandi ed esegui la riga sottostante.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Esegui il server selenium su altre macchine per avviare i nodi.
Browser e nodi
Dopo aver avviato hub e nodi su ogni macchina, accederai a GRID Console
Troverai 5 Chrome, 5 Firefox e 1 browser IE nella sezione Browser come di seguito.
Ciò indica che per impostazione predefinita è possibile utilizzare 5 Chrome, 5 Firefox e 1 browser IE.
Ad esempio, se si desidera utilizzare solo IE, è possibile avviare il nodo utilizzando il comando seguente:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Verificare il tipo di browser insieme ad altri dettagli nella console GRID facendo clic su visualizza config .
Allo stesso modo per Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Per Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Ci sono alcuni scenari in cui potresti aver bisogno del browser di ogni tipo, ad esempio: IE, Chrome e Firefox.
Ad esempio, potrebbe essere necessario utilizzare 1 IE e 1 Firefox e 1 browser Chrome
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstance viene utilizzato per limitare il numero di inizializzazioni del browser in un nodo.
Ad esempio, se vuoi lavorare con 2 Firefox e 2 IE, puoi avviare il nodo usando maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
L'istanza massima può essere verificata nella scheda di configurazione.
Allo stesso modo, è possibile configurare altre istanze del browser utilizzando maxInstances.
maxSession
maxSession viene utilizzato per configurare il numero di browser che possono essere utilizzati in parallelo nel sistema remoto.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
Allo stesso modo, è possibile avviare più nodi e la configurazione può essere verificata nella console.
NODE1:
NODE2:
Codice di rete di esempio
Qui ho usato TestNG per eseguire un test case GRID di esempio.
Prerequisito : Crea Hub e nodi come spiegato in precedenza e TestNG dovrebbe essere configurato in eclipse.
Qui ho eseguito un test di esempio per accedere a Gmail e inserire nome utente e password
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Come nell'esempio, devi usare RemoteWebDriver se stai usando GRID e devi fornire funzionalità al browser. Devi impostare il browser e la piattaforma come sopra.
miglior ripper dvd gratuito per Windows
In questo esempio, ho utilizzato la piattaforma come WINDOWS. Puoi utilizzare qualsiasi piattaforma secondo le tue esigenze.
Una versione del browser può essere impostata anche utilizzando dr.setVersion ('version')
Per Istanza, devi eseguire questo test in serie in più browser devi configurare il tuo testng.xml. Di seguito è la suite testng.XML per il test sopra per eseguire il tuo test in serie.
Per eseguire il test parallelo, devi modificare il tuo testng.xml come di seguito.
Qui in testng.XML devi specificare il parametro come parllel = 'Test' e numero di thread = '3' descrive il numero massimo di thread da eseguire in parallelo.
Configurazione tramite file JSON
La griglia può anche essere avviata insieme alla sua configurazione utilizzando un file di configurazione JSON.
Crea un file JSON per avere sotto la configurazione. Qui ho creato un file JSON denominato grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Avvia l'hub utilizzando il comando seguente
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Allo stesso modo, crea un file json diverso per nodi diversi secondo la configurazione richiesta.
Di seguito è riportato un esempio di file di configurazione JSON per il nodo denominato grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Per avviare il nodo
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Puoi modificare tutta la configurazione di un browser, maxInstances, porta, maxSession ecc. Nel file JSON.
Puoi fornire la versione del browser, la piattaforma nel file di configurazione JSON come di seguito:
{
'BrowserName': 'chrome', 'version': '8', 'platform': 'Windows'
}
Conclusione
È consigliabile usa Selenium Grid quando devi eseguire test multi-browser e hai un gran numero di casi di test.
In questo modulo, abbiamo spiegato come configurare l'hub ei nodi Grid insieme a come eseguire i casi di test Grid utilizzando testng.XML e il file JSON.
Prossimo tutorial n.30 : Test di automazione con strumento selenio e cetriolo . Cetriolo è un test BDD attrezzo e Framework. Impareremo le caratteristiche dello strumento Cucumber e il suo utilizzo in scenari in tempo reale inclusi come integrare Selenium WebDriver con Cucumber .
Si prega di inviare le vostre domande relative a Selenium Grid nei commenti qui sotto.
Lettura consigliata
- Docker Selenium Tutorial: come integrare Selenium Grid con Docker
- Test di automazione utilizzando lo strumento Cucumber e il selenio - Tutorial sul selenio # 30
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Spock per integrazione e test funzionali con selenio
- Tutorial approfonditi su Eclipse per principianti
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Tutorial Geb - Test dell'automazione del browser utilizzando lo strumento Geb
- Tutorial QA di Parrot: revisione dello strumento di test funzionale su più browser