Opsætning af et selenet til distribueret selen-test



Denne blog hjælper dig med at forstå behovet for Selen Grid og fordelene deraf. Læs det for at konfigurere dit første Selen Grid ved at konfigurere hub & noder.

De andre blogs i denne Selenium-tutorial-serie taler om oprettelsen af ​​testsager og udførelse af disse testsager i rækkefølge og parallelt. Så den sidste teknik, der er tilbage til diskussion, er udførelse af testsager i eksterne maskiner. Selen Grid kan bruges til at udføre disse tests på eksterne maskiner / værter. Derfor er det emnet for diskussion af nutidens blog.

  1. Hvorfor og hvornår skal man bruge Selen Grid?
  2. Hvad er selenet?
  3. Selenet 1 mod Selenium 2
  4. Arkitektur af Selen Grid
  5. Opbygning af et selenet

Hvorfor og hvornår skal man bruge selenet?

Der er så mange webbrowsere, der er i brug i dag. Brugere bruger muligvis enten Chrome eller Firefox eller Safari eller Opera eller endda Internet Explorer til at læse denne meget blog. De bruger muligvis forskellige versioner af browserne. De kører muligvis også disse browsere på ethvert operativsystem, det være sig Windows eller Mac eller Ubuntu eller enhver anden distribution af Linux.





Hvad hvis brugerne så noget vigtigt på internettet? Noget vigtigt for din virksomhed. Vil du ikke gå den ekstra mil (teste webappen) bare for at sikre, at dine brugere og / eller kunder får den bedste brugeroplevelse? Du ville, ikke?

Nå skal du!



Men spørgsmålet er, hvor gennemførligt er det? Vil du være i stand til at bruge tid på at teste din webapp på alle mulige operativsystemer og alle tilgængelige webbrowsere? Hmm, det lyder lidt af en udfordring. Det er her, Selen Grid passer til regningen og hjælperspar din tid og energi.

Derudover opstår der endnu et spørgsmål: Er det levedygtigt at oprette selinfrastruktur ved hjælp af lokale systemer? Det er en udfordring at vedligeholde et gitter med alle krævede browsere og operativsystemer. Til dette er der flere online platforme, der giver et online Selen Grid, som du kan få adgang til at køre dine selen-automatiseringsskripter. For eksempel kan du bruge LambdaTest . Den har mere end 2000 browsermiljøer, hvor du kan køre dine tests og virkelig automatisk cross-browser-test.

Hvad er selengitter?

Selen Grid er et andet vigtigt værktøj i Selenium-værktøjssættet. Grid er i stand til at koordinere WebDriver-tests / RC-tests, som kan køre samtidigt på flere webbrowsere eller kan startes på forskellige operativsystemer eller endda hostes på forskellige maskiner.



netbearbejdning - selenetSå hvordan fungerer det? Grid anvender en Hub-Node-arkitektur, hvor der er en Hub, der fungerer som master og en eller flere noder, der fungerer som slaver.

Hvad dette betyder er, at hvis du har i alt 100 job / tests, der skal udføres, kan testene udføres samtidigt i 5 maskiner, hvor hver maskine vil køre 20 tests. Faktisk kan du udføre disse tests i forskellige kombinationer af operativsystemer og browsere. Hver maskine her kan have et andet operativsystem og inden for hvert operativsystem kan testene udføres på forskellige browsere.

Denne handling sparer let meget af din tid til testudførelse. Hvis du overvejer ovenstående eksempel, kan vi reducere udførelsestiden til omkring 1/5 af den samlede tid, det tager at udføre test på en enkelt maskine.

Hvis du kan huske fra mine tidligere blogs, har jeg nævnt utallige gange, at Grid var en del af Selen-projektet siden starten, dvs. siden Selen v1. Selen Grid var også en del af Selen v2, og i øjeblikket er den en del af Selen v3. Der er ikke meget forskel på v2 og v3 i Selen Grid. Imidlertid har v1 mange forskelle forholdsvis. Så lad osforstå forskellene mellem v1 og v2.

Selenet 1 mod Selenium 2

Den grundlæggende forskel mellem Grid v1.0 og v2.0 er, at RC blev brugt i Grid 1, og WebDriver blev brugt i Grid 2. Tabellen nedenfor forklarer forskellene i detaljer.

Gitter 1 Gitter 2
Kræver, at Apache Ant installeresApache Ant-installation er ikke påkrævet
Har sin egen fjernbetjening (Dette er forskelligt fra RC-server)Pakket med Selenium Server jar-fil
Understøtter kun Selenium RC-kommandoerUnderstøtter både Selenium RC og WebDriver scripts
Du kan kun automatisere en browser pr. FjernbetjeningDu kan automatisere op til 5 browsere pr. Fjernbetjening


Nu hvor vi har lært de grundlæggende forskelle mellem de to versioner, lad os dybe dybt ned i Selen Grid.

konvertere binær til int java

Arkitektur af selenet

Som jeg nævnte tidligere, fungerer Grid på basis af en hub og flere noder. Men hvad er hub og noder, og hvad gør de?

Navet

I enhver netopsætning kan der kun være en hub, og det vil være det centrale punkt i denne netopsætning. Alle test, der skal udføres, skal indlæses her. På trods af de test, der indlæses her, udføres de kun på noderne. Vi kan konfigurere enhver værtsmaskine til at være vores hub, og den vil koordinere aktiviteterne til testudførelse i andre værter.

For at dette kan ske, skal vi først konfigurere hubben og derefter oprette andre noder, der skal registreres i hubben. Før jeg går i for mange detaljer, lad mig vise dig kommandoen til at konfigurere hubben.

Konfiguration af hubben

Du skal først downloade Selenium-server-JAR-filen fra Seleniumhqs websted. Linket er her . Du skal også sørge for, at Java er installeret i dit system, og at miljøvariablerne er indstillet.

Når du har downloadet jar-filen, skal du placere den i et passende bibliotek. For at gøre det nemmere har jeg downloadet det og placeret det i Selenium-mappen i C Drive. Det anbefales, at du også downloader jar-filen og placerer den i en lignende mappe i alle de andre noder.

For at konfigurere hubben skal du køre kommandoen i Windows-kommandoprompten. Kommandoen findes i nedenstående uddrag.

C: BrugereVardhan> cd .. C: Brugere> cd .. C:> cd Selen C: Selen> java -jar selen-server-standalone-3.4.0.jar -role hub

Det selen-server-standalone-3.4.0.jar er navnet på jar-filen, jeg downloadede.
Det -roll flag bruges til at indstille den pågældende værtsmaskine som Hub. Når du trykker på enter, får du nedenstående output på din skærm.

Hvis du ikke har bemærket ovenstående skærmbillede, skal du se det igen. Det siger ' -Noder skal registrere sig på http://192.168.0.11:4444/grid/register '. Nu hvor hub'en er konfigureret, skal vi konfigurere noderne og forbinde dem til denne hub.

192.168.0.11 er IP-adressen på hubben, og hver node skal oprette forbindelse til denne IP-adresse. 4444 er det standardportnummer, som Selenium Grid bliver hostet på og lytter til anmodninger. Hvis en anden tjeneste kører på port 4444, og du vil have, at Selenium Grid skal hostes i en anden port, kan du gøre det ved at angive -Havn flag efterfulgt af portnummer.

Knudepunkterne

Knudepunkterne er værtsmaskinerne, som testene køres på. Disse tests vil blive lanceret af Hub. Hub'en kan starte en eller flere noder enten på eksterne maskiner eller den samme maskine, hvor selve hub'en er placeret. På hver af noderne kan forskellige operativsystemer startes, og på forskellige operativsystemer kan forskellige versioner af den samme browser eller forskellige browsere startes.

Konfiguration af noderne

I lighed med Hub'en skal du først downloade Jar-filen i Node-maskinerne og placere den på C-drevet eller et hvilket som helst andet almindeligt bibliotek for din bekvemmelighed. Du kan derefter køre nedenstående kommando i Windows-kommandoprompten. Hvis du lancerer endda Node på samme maskine som din Hub, skal du køre kommandoen ved at starte en anden kommandoprompt.

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

Der er kun et par forskelle i denne kommando sammenlignet med den kommando, der er nødvendig for at starte Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe bruges til at indstille stien til browserdriveren. I lighed med at indstille stien til browserdriveren i din WebDriver-kode, angiver du den her for at gøre det muligt for noden at udføre tests. Fra og med Selenium v3 skal du downloade driverbrowseren til Firefox. Browserdriveren til Firefox er Gecko-driver. I version 1 og 2 skal du dog indstille browserdriveren til alle andre browsere end Firefox.
-rolknude flag bruges til at indstille den pågældende værtsmaskine som Node.
-hub http://192.168.0.11:4444/grid/register informerer noden om at oprette forbindelse til hub ved hjælp af hubens IP-adresse. Et vigtigt punkt at bemærke er, at hvis du starter en hvilken som helst node på den samme maskine som din Hub, så kan du angive ' -hub http: // localhost: 4444 / grid / register 'I kommandoen i stedet for Hubens IP-adresse.

Når du trykker på enter, får du nedenstående output på kommandoprompten.

Nu ville Node have været forbundet til hubben. Du kan bekræfte det ved at gå tilbage til kommandoprompten, der bruges til at starte hub'en, og du vil bemærke følgende meddelelse: ‘ Registreret en node http://192.168.0.11:5555 '.

IP-adressen og portnummeret er din Node. Da jeg har min node på den samme maskine som min hub, er porten, der bruges til noden, 5555. Når du starter den på en anden maskine, bruges standardporten.

Når du starter følgende URL på din Hubs maskine, får du status for de knudepunkter, der er forbundet til din Hub. Se den fremhævede del i skærmbilledet nedenfor.

Nu hvor din Selen Grid er konfigureret, kan du fortsætte med udførelsen af ​​testskripter på noder. Lad mig understrege, at vi har brug for at køre scripts i vores hub, og de vil blive udført i vores noder. Scriptet, der bruges til at udføre testene, ligner WebDrivertest.

Opbygning af et selenet

Jeg har kørt mit script i Eclipse IDE. Udførelsen af ​​dette script er afhængig af to vigtige bibliotekspakker. De er Ønskede kapaciteter objekt og RemoteWebDriver objekt.

DesiredCapabilities bruges til at indstille browsertypen og OS for vores node. Brug nedenstående kode for at importere DesiredCapabilities-objekt.

import org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver bruges til at vælge den node, som vi vil udføre testen på. Brug nedenstående kodelinjer til at importere RemoteWebDriver-objekt.

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

Jeg har importeret disse to pakker sammen med TestNG-kommentarpakken til mit script som vist i nedenstående kodestykke. Jeg har importeret TestNG-annoteringer, fordi jeg har udført dette som en TestNG-test, som der genereres en detaljeret rapport for. Jeg vil anbefale dig at importere det samme sæt pakker til din kode.

Når du manøvrerer over logoerne på enhver browser, der findes i Selenium Hub-konsollen, får du detaljerne som browsernavn og platform af den node, du vil automatisere. Billedet angiver også, hvor mange forekomster af browsere jeg kan åbne i min node. Jeg kan maksimalt konfigurere 5 chrome-, 5 Firefox- og 1 Internet Explorer-forekomster. Disse detaljer er til stede i nedenstående skærmbillede.

Du kan bruge koden i nedenstående uddrag til at konfigurere dit første gitter.

pakke 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 {statisk WebDriver driver statisk strengnodeUrl @BeforeTest offentlig ugyldig opsætning () kaster fejlformat nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities kapaciteter = DesiredCapabilities.chrome () capabilities.setBrowserName ('chrome') kapaciteter. setPlatform (Platform.WINDOWS) driver = ny RemoteWebDriver (ny URL (nodeUrl) ), kapaciteter)} @Test offentlig ugyldighed simpleTest () Edureka ', driver.getTitle ()) @AfterTest offentlig ugyldighed efter test () {driver.quit ()}}

Jeg har delt hele testskriptet i tre testkommentarer. @BeforeTest, @Test og @AfterTest. I @BeforeTest har jeg brugt DesiredCapablities og RemoteWebDriver-objekter til at konfigurere min node. I @Test har jeg bedt noden om at navigere til Edurekas startside og hævde titlen på siden. I @AfterTest har jeg bedt noden om at afslutte browserinstansen.

Når din test består eksekvering, får du nedenstående output.

18. maj 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Registreret dialekt: OSS PASSED: simpleTest ======================= =========================== Standard test Testkørsel: 1, Fejl: 0, Spring over: 0 =========== ===================================================== =================================== Standard suite I alt testkørsel: 1, Fejl: 0, Spring over: 0 = =================================================

Da dette udføres som en TestNG-test, får du en detaljeret testrapport svarende til nedenstående skærmbillede.

Hvis du ikke ved, hvad der er TestNG, og hvordan du bruger testkommentarer, så læs min blog om, hvordan du bruger Selen WebDriver med TestNG fra denne Selenium-tutorial-serie.

Du kan se videoen nedenfor for at være vidne til en demonstration af, hvordan man bygger et selenet. Instruktøren, der leverer videoen, forklarer de samme begreber, der er forklaret i denne blog.

Selen Grid Tutorial For Beginners | Selen Tutorial | Edureka

Så det bringer os til slutningen af ​​denne Selen Grid-blog. Hvis du er i tvivl om eller har problemer med nogen kode / indhold i denne blog-serie, skal du lade dem være i kommentarfeltet nedenfor, så vil jeg løse dit problem tidligst.

Hvis du ønsker at lære selen og opbygge en karriere inden for testdomænet, så tjek vores interaktive live-online her kommer der 24 * 7 support til at guide dig gennem din læringsperiode.

Har du et spørgsmål til os? Nævn det i kommentarfeltet, og vi vender tilbage til dig.