Configuració d’una xarxa de seleni per a proves distribuïdes de seleni

Aquest bloc us ajudarà a entendre la necessitat de Selenium Grid i els seus beneficis. Llegiu-lo per configurar el primer Selenium Grid mitjançant la configuració de concentradors i nodes.

Els altres blocs d’aquesta sèrie de tutorials de Selenium parlen de la creació de casos de prova i l’execució d’aquests casos de manera seqüencial i paral·lela. Per tant, la tècnica final que queda per debat és l’execució de casos de prova en màquines remotes. Selenium Grid es pot utilitzar per executar aquestes proves en màquines / hosts remots. Per tant, aquest és el tema de debat del bloc d’avui.



  1. Per què i quan utilitzar Selenium Grid?
  2. Què és la xarxa de seleni?
  3. Selenium Grid 1 vs. Selenium Grid 2
  4. Arquitectura de la xarxa de seleni
  5. Construint una xarxa de seleni

Per què i quan s’ha d’utilitzar Selenium Grid?

Hi ha tants navegadors web que s’utilitzen avui en dia. Els usuaris poden utilitzar Chrome o Firefox o Safari o Opera o fins i tot Internet Explorer per llegir aquest mateix bloc. És possible que facin servir diferents versions dels navegadors. També poden executar aquests navegadors en qualsevol sistema operatiu, ja sigui Windows o Mac o Ubuntu o qualsevol altra distribució de Linux.



Què passa si els usuaris veien alguna cosa important a Internet? Una cosa important per al vostre negoci. No voleu fer un esforç addicional (provar l'aplicació web) només per assegurar-vos que els vostres usuaris i / o clients obtinguin la millor experiència d'usuari? Ho faríeu, oi?

Bé, hauríeu de fer-ho!



Però la pregunta és: fins a quin punt és factible? Podreu passar temps provant la vostra aplicació web en tots els sistemes operatius i navegadors web disponibles? Mmm, això sembla un repte. Aquí és on Selenium Grid s’ajusta a la factura i ajudaestalvieu temps i energia.

implementació de classificació de fusió c ++

A més, sorgeix una pregunta més: és viable configurar una infraestructura de xarxa de seleni mitjançant sistemes locals? Mantenir una quadrícula amb tots els navegadors i sistemes operatius necessaris és un repte. Per a això, hi ha diverses plataformes en línia que proporcionen una xarxa de seleni en línia a la qual podeu accedir per executar els vostres scripts d’automatització de seleni. Per exemple, podeu utilitzar-lo LambdaTest . Té més de 2.000 entorns de navegador sobre els quals podeu executar les vostres proves i proves realment automàtiques entre navegadors.

Què és la xarxa de seleni?

Selenium Grid és una altra eina important del conjunt d’eines Selenium. Grid és capaç de coordinar les proves de WebDriver / RC que es poden executar simultàniament en diversos navegadors web o es poden iniciar en diferents sistemes operatius o fins i tot allotjar-se en diferents màquines.



treball en xarxa - xarxa de seleniLlavors, com funciona això? Grid utilitza una arquitectura Hub-Node on hi ha un Hub, que actua com a mestre i un o més Nodes que actuen com a esclaus.

Això vol dir que, si teniu un total de 100 treballs / proves que cal executar, les proves es poden executar simultàniament en 5 màquines, on cada màquina realitzarà 20 proves. De fet, podeu executar aquestes proves en diferents combinacions de sistemes operatius i navegadors. Aquí cada màquina pot tenir un sistema operatiu diferent i, dins de cada SO, les proves es poden realitzar en diferents navegadors.

Aquest acte us estalviaria molt de temps en l’execució de la prova. Si teniu en compte l’exemple anterior, podem reduir el temps d’execució al voltant de la cinquena part del temps total necessari per executar proves en una màquina única.

Si recordeu dels meus anteriors blocs, he esmentat una infinitat de vegades que Grid va formar part del projecte Selenium des dels seus inicis, és a dir, des de Selenium v1. Selenium Grid també formava part de Selenium v2 i actualment forma part de Selenium v3. No hi ha molta diferència en els v2 i v3 de la xarxa Selenium. No obstant això, v1 té moltes diferències comparativament. Per tant, anementendre les diferències entre v1 i v2.

Selenium Grid 1 vs. Selenium Grid 2

La diferència fonamental entre Grid v1.0 i v2.0 és que, RC es va utilitzar a Grid 1 i WebDriver a Grid 2. La taula següent explica les diferències en detall.

Graella 1 Graella 2
Cal instal·lar Apache AntNo cal instal·lar Apache Ant
Té el seu propi control remot (això és diferent del servidor RC)Inclòs amb el fitxer jar Selenium Server
Només admet comandes Selenium RCAdmet els scripts Selenium RC i WebDriver
Només podeu automatitzar un navegador per control remotPodeu automatitzar fins a 5 navegadors per control remot


Ara que hem après les diferències fonamentals entre les dues versions, aprofundim en Selenium Grid.

Arquitectura de la xarxa de seleni

Com he esmentat anteriorment, Grid funciona sobre la base d’un hub i de diversos nodes. Però, què són Hub i Nodes i què fan?

El Hub

En qualsevol configuració de quadrícula, només hi pot haver un concentrador i aquest serà el punt central d’aquesta configuració de quadrícula. Aquí s’han de carregar totes les proves que cal executar. Tot i que es carreguen les proves aquí, només s'executaran als nodes. Podem configurar qualsevol màquina amfitrió perquè sigui el nostre hub i coordinarà les activitats d’execució de la prova en altres amfitrions.

Perquè això passi, primer hem de configurar el concentrador i, a continuació, crear altres nodes per registrar-se al concentrador. Abans d'entrar en massa detalls, deixeu-me mostrar-vos l'ordre per configurar el concentrador.

Configuració del concentrador

Primer de tot, heu de descarregar el fitxer JAR del servidor Selenium des del lloc web de Seleniumhq. L’enllaç és aquí . També heu d'assegurar-vos que Java estigui instal·lat al vostre sistema i que es configurin les variables d'entorn.

Un cop hàgiu descarregat el fitxer jar, haureu de col·locar-lo al directori adequat. Per a la meva comoditat, l'he descarregat i l'he situat a la carpeta Selenium de C Drive. Es recomana que també descarregueu el fitxer jar i que el col·loqueu en un directori similar a la resta de nodes.

s'estableix el camí de la classe a Java

Per configurar el concentrador, heu d'executar l'ordre a l'indicador de comandes de Windows. L'ordre està present al fragment següent.

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

El selenium-server-standalone-3.4.0.jar és el nom del fitxer jar que he descarregat.
El -funció El senyalador s'utilitza per configurar aquesta màquina principal com a concentrador. Quan premeu Intro, obtindreu la sortida següent a la pantalla.

En cas que no observeu la captura de pantalla anterior, torneu-la a veure. Diu ' -Els nodes s'han de registrar a http://192.168.0.11:4444/grid/register ‘. Ara que el Hub està configurat, hem de configurar els nodes i connectar-los a aquest Hub.

192.168.0.11 és l'adreça IP del concentrador i tots els nodes s'han de connectar a aquesta adreça IP. 4444 és el número de port per defecte on s’allotja Selenium Grid i escolta les sol·licituds. Si s’executa algun altre servei al port 4444 i voleu que Selenium Grid s’allotgi en un altre port, podeu fer-ho especificant el -port indicador seguit del número de port.

Els nodes

Els nodes són les màquines host en què s’executen les proves. Aquestes proves les llançarà Hub. El Hub pot llançar un o més nodes en màquines remotes o en la mateixa màquina on es troba el Hub. En cadascun dels nodes, es poden iniciar diferents sistemes operatius i, en diferents sistemes operatius, es poden iniciar diferents versions del mateix navegador o diferents navegadors.

Configuració dels nodes

De manera similar al Hub, primer heu de descarregar el fitxer Jar a les màquines Node i col·locar-lo a la unitat C o a qualsevol altre directori comú per a la vostra comoditat. A continuació, podeu executar l'ordre següent a l'indicador d'ordres de Windows. Si inicieu fins i tot el node a la mateixa màquina que el vostre concentrador, haureu d'executar l'ordre iniciant un altre símbol del sistema.

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

Hi ha algunes diferències en aquesta ordre en comparació amb l'ordre necessària per iniciar el Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe s'utilitza per establir la ruta del controlador del navegador. De manera similar a la configuració del camí del controlador del navegador al codi WebDriver, l’especifiqueu aquí per tal de permetre que el node realitzi proves. A partir de Selenium v3, heu de descarregar el navegador del controlador per a Firefox. El controlador del navegador per a Firefox és el controlador Gecko. Tot i això, a les versions 1 i 2, heu d’establir el controlador del navegador per a tots els navegadors diferents del Firefox.
-node de rol El senyalador s'utilitza per configurar aquesta màquina principal com a Node.
-hub http://192.168.0.11:4444/grid/register informa el node que es connecti al concentrador mitjançant l’adreça IP del concentrador. Un punt important a tenir en compte és que si esteu llançant qualsevol node a la mateixa màquina que el vostre concentrador, podeu especificar ' -hub http: // localhost: 4444 / grid / register ‘A l’ordre en lloc de l’adreça IP del Hub.

Quan premeu Intro, obtindreu la sortida següent a l'indicador d'ordres.

A hores d’ara, el Node ja hauria estat connectat al Hub. Podeu comprovar-ho si torneu a l'indicador d'ordres utilitzat per iniciar el Hub i notareu el següent missatge: ' S'ha registrat un node http://192.168.0.11:5555 '.

L'adreça IP i el número de port són els del vostre node. Com que tinc el meu node a la mateixa màquina que el meu concentrador, el port utilitzat per al node és 5555. Quan l'inicieu en alguna altra màquina, s'utilitzarà el port per defecte.

Quan inicieu l’URL següent a la màquina del vostre Hub, obtindreu l’estat dels nodes connectats al Hub. Vegeu la part ressaltada a la captura de pantalla següent.

Ara que la vostra xarxa Selenium està configurada, podeu procedir a l'execució de scripts de prova als nodes. Permeteu-me tornar a emfatitzar que hem d'executar scripts al nostre Hub i que s'executaran als nostres nodes. El script utilitzat per executar les proves és similar a WebDriverproves.

Construint una xarxa de seleni

He executat el meu script a Eclipse IDE. L'execució d'aquest script es basa en dos paquets importants de biblioteca. Ells són Capacitats desitjades objecte i RemoteWebDriver objecte.

DesiredCapabilities s’utilitza per establir el tipus de navegador i el sistema operatiu del nostre node. Per importar l’objecte DesiredCapabilities, utilitzeu el codi següent.

importació org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver s’utilitza per seleccionar el node sobre el qual volem executar la prova. Per importar objectes RemoteWebDriver, utilitzeu les línies de codi següents.

importació java.net.MalformedURLException importació java.net.URL import org.openqa.selenium.remote.RemoteWebDriver

He importat aquests dos paquets junt amb el paquet d'anotacions TestNG per al meu script, tal com es mostra al fragment de codi següent. He importat anotacions TestNG perquè l'he executat com a prova TestNG per a la qual es generarà un informe detallat. Us recomano que importeu el mateix conjunt de paquets per al vostre codi.

Quan feu una maniobra sobre els logotips de qualsevol navegador present a la consola Selenium Hub, obtindreu els detalls com browserName i la plataforma del node que vulgueu automatitzar. La imatge també indica quantes instàncies dels navegadors puc obrir al meu node. Puc configurar un màxim de 5 instàncies Chrome, 5 Firefox i 1 Internet Explorer. Aquests detalls es troben a la captura de pantalla següent.

Podeu utilitzar el codi del fragment següent per configurar la vostra primera quadrícula.

paquet 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 Importació de plataforma org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver classe pública TestGrid {controlador estàtic de WebDriver cadena estàtica nodeUrl @BeforeTest public void setup () nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities functions = DesiredCapabilities.chrome () powers.setBrowserName ('chrome') powers.setPlatform (Platform.WINDOWS) driver = new RemoteWebDriver (new URL (nodeUrl ), capacitats)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

He dividit tot el guió de prova en tres anotacions de prova. @BeforeTest, @Test i @AfterTest. A @BeforeTest, he utilitzat els objectes DesiredCapablities i RemoteWebDriver per configurar el meu node. A @Test, he demanat al node que anés a la pàgina principal d’Edureka i afirmés el títol de la pàgina. A @AfterTest, he demanat al node que deixi la instància del navegador.

Quan la prova superi l'execució, obtindreu la sortida següent.

18 de maig de 2017 a les 15:09:07 PM org.openqa.selenium.remote.ProtocolHha de mans createSession INFO: dialecte detectat: OSS PASSED: simpleTest ===================== ========================== Prova de prova predeterminada Execució de proves: 1, Fracassos: 0, Salta: 0 ========== =================================================== ================================== Suite predeterminada Total de proves realitzades: 1, Fracassos: 0, Omet: 0 = ===============================================

Com que s’executa com a prova TestNG, obtindreu un informe de prova detallat similar a la captura de pantalla següent.

Si no sabeu què és TestNG i què s'utilitza per fer anotacions de prova, llegiu el meu bloc sobre com s'utilitza Selenium WebDriver amb TestNG d'aquesta sèrie d'aprenentatges Selenium.

Podeu veure el vídeo següent per presenciar una demostració de com construir una xarxa de seleni. L’instructor que reparteix el vídeo explica els mateixos conceptes explicats en aquest bloc.

Tutorial de la xarxa de seleni per a principiants | Tutorial de seleni | Edureka

Per tant, això ens porta al final d’aquest bloc de Selenium Grid. Si teniu algun dubte o problema amb qualsevol codi o contingut d’aquesta sèrie de blocs, deixeu-los a la secció de comentaris a continuació i solucionaré el vostre problema al més aviat possible.

Si voleu aprendre Selenium i construir una carrera professional en el domini de les proves, consulteu la nostra línia interactiva en directe aquí, ve amb suport 24 * 7 per guiar-vos durant tot el vostre període d'aprenentatge.

Tens alguna pregunta? Esmenta’l a la secció de comentaris i et respondrem.

Preguntes sobre l'entrevista de científics de dades de Google