Sette opp et selenett for distribuert selen-testing



Denne bloggen vil hjelpe deg med å forstå behovet for Selen Grid og fordelene. Les den for å konfigurere ditt første Selen Grid ved å konfigurere hub og noder.

De andre bloggene i denne Selenium-opplæringsserien snakker om oppretting av testsaker og gjennomføring av testsaker i rekkefølge og parallelt. Så, den siste teknikken som er igjen for diskusjon er gjennomføring av testsaker i eksterne maskiner. Selenium Grid kan brukes til å utføre disse testene på eksterne maskiner / verter. Derfor er det temaet for diskusjonen i dagens blogg.

  1. Hvorfor og når skal jeg bruke Selen Grid?
  2. Hva er Selen Grid?
  3. Selen Grid 1 vs. Selen Grid 2
  4. Arkitektur av Selen Grid
  5. Å bygge et selenett

Hvorfor og når skal du bruke selenett?

Det er så mange nettlesere som er i bruk i dag. Brukere kan bruke Chrome eller Firefox eller Safari eller Opera eller til og med Internet Explorer for å lese denne bloggen. De bruker kanskje forskjellige versjoner av nettleserne. De kan også kjøre disse nettleserne på ethvert operativsystem, det være seg Windows eller Mac eller Ubuntu eller annen distribusjon av Linux.





Hva om brukerne så noe viktig på internett? Noe viktig for virksomheten din. Vil du ikke gå den ekstra milen (teste nettappen) bare for å sikre at brukerne og / eller kundene får den beste brukeropplevelsen? Du ville, ikke sant?

Vel, du burde!



Men spørsmålet er, hvor gjennomførbart er det? Vil du kunne bruke tid på å teste nettappen din på alle mulige operativsystemer og alle tilgjengelige nettlesere? Hmm, det høres ut som litt av en utfordring. Det er her Selen Grid passer til regningen og hjelperspar tid og energi.

I tillegg til dette dukker det opp et spørsmål til: Er det levedyktig å sette opp selenettinfrastruktur ved hjelp av lokale systemer? Å vedlikeholde et rutenett med alle nødvendige nettlesere og operativsystemer er en utfordring. For dette er det flere online plattformer som tilbyr et online Selen Grid som du kan få tilgang til for å kjøre selen automatiseringsskript. For eksempel kan du bruke LambdaTest . Den har mer enn 2000 nettlesermiljøer der du kan kjøre testene dine og virkelig teste nettleseren.

Hva er selenett?

Selen Grid er et annet viktig verktøy i Selenium-verktøypakken. Grid er i stand til å koordinere WebDriver-tester / RC-tester som kan kjøres samtidig på flere nettlesere eller kan startes på forskjellige operativsystemer eller til og med vert på forskjellige maskiner.



nettverk - selenettSå hvordan fungerer det? Grid benytter en Hub-Node-arkitektur der det er en Hub som fungerer som master og en eller flere noder som fungerer som slaver.

Hva dette betyr er at hvis du har totalt 100 jobber / tester som må utføres, kan testene utføres samtidig i 5 maskiner, hvor hver maskin vil kjøre 20 tester. Faktisk kan du utføre disse testene i forskjellige kombinasjoner av operativsystemer og nettlesere. Hver maskin her kan ha forskjellige operativsystemer og i hvert operativsystem kan testene utføres på forskjellige nettlesere.

Denne handlingen vil lett spare mye av tiden din i testutførelse. Hvis du vurderer eksemplet ovenfor, kan vi redusere utførelsestiden til rundt 1/5 av den totale tiden det tar å utføre tester på en enkelt maskin.

Hvis du kan huske fra mine forrige blogger, har jeg nevnt utallige ganger at Grid var en del av Selen-prosjektet siden oppstarten, dvs. siden Selen v1. Selen Grid var også en del av Selen v2, og for øyeblikket er den en del av Selen v3. Det er ikke stor forskjell i v2 og v3 i Selen Grid. Imidlertid har v1 mange forskjeller relativt. Så la ossforstå forskjellene mellom v1 og v2.

Selen Grid 1 vs. Selen Grid 2

Den grunnleggende forskjellen mellom Grid v1.0 og v2.0 er at RC ble brukt i Grid 1, og WebDriver ble brukt i Grid 2. Tabellen nedenfor forklarer forskjellene i detalj.

Rutenett 1 Rutenett 2
Krever at Apache Ant installeresApache Ant installasjon er ikke nødvendig
Har sin egen fjernkontroll (Dette er forskjellig fra RC-server)Leveres med Selenium Server jar-fil
Støtter bare Selenium RC-kommandoerStøtter både Selenium RC og WebDriver-skript
Du kan bare automatisere en nettleser per fjernkontrollDu kan automatisere opptil 5 nettlesere per fjernkontroll


Nå som vi har lært de grunnleggende forskjellene mellom de to versjonene, la oss dykke inn i Selen Grid.

Arkitektur av selenett

Som jeg nevnte tidligere, fungerer Grid på grunnlag av en Hub og flere noder. Men hva er hub og noder og hva gjør de?

The Hub

I ethvert rutenettoppsett kan det bare være ett nav, og det vil være det sentrale punktet i det rutenettet. Alle testene som må utføres, bør lastes inn her. Til tross for testene som lastes inn her, vil de bare bli utført på nodene. Vi kan konfigurere en hvilken som helst vertsmaskin til å være vår hub, og den vil koordinere aktivitetene for testutførelse i andre verter.

For at dette skal skje, må vi først konfigurere huben, og deretter lage andre noder for å registrere seg til huben. Før jeg går inn i for mange detaljer, la meg vise deg kommandoen for å konfigurere huben.

Konfigurering av navet

Du må først laste ned JAR-filen for Selenium-serveren fra Seleniumhqs nettsted. Koblingen er her . Du må også sørge for at Java er installert i systemet ditt og at miljøvariablene er angitt.

er kotlin bedre enn java

Når du har lastet ned jar-filen, må du plassere den i en passende katalog. For min bekvemmelighet har jeg lastet ned den og plassert den i Selenium-mappen i C Drive. Det anbefales at du også laster ned jar-filen og plasserer den i en lignende katalog i alle de andre nodene.

For å konfigurere Hub, må du kjøre kommandoen i Windows ledetekst. Kommandoen finnes i utdraget nedenfor.

C: BrukereVardhan> cd .. C: Brukere> cd .. C:> cd Selen C: Selen> java -jar selen-server-standalone-3.4.0.jar -role hub

De selen-server-standalone-3.4.0.jar er navnet på jar-filen jeg lastet ned.
De -roll flagg brukes til å angi den bestemte vertsmaskinen som Hub. Når du trykker på enter, får du utdataene nedenfor på skjermen.

Hvis du ikke la merke til skjermbildet ovenfor, så se det igjen. Det står ' -Noder bør registrere seg på http://192.168.0.11:4444/grid/register ‘. Nå som huben er konfigurert, må vi sette opp nodene og koble dem til denne huben.

192.168.0.11 er IP-adressen til huben, og hver node skal koble til denne IP-adressen. 4444 er standard portnummer som Selenium Grid blir vert for og lytter til forespørsler. Hvis en annen tjeneste kjører på port 4444 og du vil at Selenium Grid skal være vert i en annen port, kan du gjøre det ved å spesifisere -havn flagg etterfulgt av portnummer.

Nodene

Nodene er vertsmaskiner som testene kjøres på. Disse testene vil bli lansert av Hub. Huben kan starte en eller flere noder enten på eksterne maskiner eller den samme maskinen der selve huben befinner seg. På hver av nodene kan forskjellige operativsystemer startes, og på forskjellige operativsystemer kan forskjellige versjoner av samme nettleser eller forskjellige nettlesere startes.

Konfigurere nodene

I likhet med Hub, må du først laste ned Jar-filen i Node-maskinene og plassere den på C-stasjonen eller en hvilken som helst annen vanlig katalog for din bekvemmelighet. Du kan deretter kjøre kommandoen nedenfor i Windows ledetekst. Hvis du starter selv Node på samme maskin som Huben din, må du kjøre kommandoen ved å starte en annen ledetekst.

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

Det er bare noen få forskjeller i denne kommandoen sammenlignet med kommandoen som trengs for å starte huben.
-Dwebdriver.chrome.driver = E: chromedriver.exe brukes til å angi banen til nettleserdriveren. I likhet med å angi banen til nettleserdriveren i WebDriver-koden din, spesifiserer du den her for å gjøre det mulig for Node å utføre tester. Fra Selenium v3 og utover må du laste ned driver-nettleseren for Firefox. Nettleserdriveren for Firefox er Gecko-driver. I versjon 1 og 2 må du imidlertid stille nettleserdriveren for alle andre nettlesere enn Firefox.
-roll node flagg brukes til å angi den bestemte vertsmaskinen som Node.
-hub http://192.168.0.11:4444/grid/register informerer Node om å koble til Hub ved hjelp av Hubens IP-adresse. Et viktig poeng å merke seg er at hvis du lanserer en node på samme maskin som huben din, kan du spesifisere -hub http: // localhost: 4444 / grid / register ‘I kommandoen i stedet for Hubens IP-adresse.

sette klassesti i java

Når du trykker på enter, får du utdataene nedenfor på ledeteksten.

Nå ville Node ha blitt koblet til huben. Du kan bekrefte det ved å gå tilbake til ledeteksten som ble brukt til å starte huben, og du vil legge merke til følgende melding: ‘ Registrerte en node http://192.168.0.11:5555 ‘.

IP-adressen og portnummeret er din Node. Siden jeg har min node på samme maskin som huben min, er porten som brukes til Node 5555. Når du starter den på en annen maskin, vil standardporten brukes.

Når du starter følgende URL på Hub-maskinen din, får du statusen til nodene som er koblet til huben din. Se den uthevede delen i skjermbildet nedenfor.

Nå som Selen Grid er konfigurert, kan du fortsette å utføre testskripter på noder. La meg understreke at vi trenger å kjøre skript i huben vår, og de vil bli utført i våre noder. Skriptet som brukes til å utføre testene, ligner på WebDrivertester.

Å bygge et selenett

Jeg har kjørt skriptet mitt i Eclipse IDE. Utførelsen av dette skriptet er avhengig av to viktige bibliotekspakker. De er Ønskede funksjoner objekt og RemoteWebDriver gjenstand.

DesiredCapabilities brukes til å stille inn nettlesertype og operativsystem for vår node. For å importere DesiredCapabilities objekt, bruk koden nedenfor.

importer org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver brukes til å velge den noden vi vil utføre testen på. For å importere RemoteWebDriver-objekt, bruk kodelinjene nedenfor.

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

Jeg har importert disse to pakkene sammen med TestNG-kommentarpakken for skriptet mitt som vist i kodebiten nedenfor. Jeg har importert TestNG-merknader fordi jeg har utført dette som en TestNG-test som en detaljert rapport vil bli generert for. Jeg vil anbefale deg å importere det samme settet med pakker for koden din.

Når du manøvrerer over logoen til en hvilken som helst nettleser som er tilstede i Selenium Hub-konsollen, får du detaljene som nettlesernavn og plattform av den noden du vil automatisere. Bildet viser også hvor mange forekomster av nettlesere jeg kan åpne i min node. Jeg kan konfigurere maksimalt 5 krom-, 5 Firefox- og 1 Internet Explorer-forekomster. Disse detaljene er til stede i skjermbildet nedenfor.

Du kan bruke koden i utdraget nedenfor for å sette opp ditt første nett.

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 importer org.openqa.selenium.remote.DesiredCapabilities importer org.openqa.selenium.remote.RemoteWebDriver offentlig klasse TestGrid {statisk WebDriver driver statisk streng nodeUrl @BeforeTest offentlig ugyldig oppsett () kaster feilformat nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities skills = DesiredCapabilities.chrome () capabilities.setBrowserName ('chrome') capabilities.setPlatform (Platform.WINDOWS) driver = ny RemoteWebDriver (ny URL (nodeUrl) ), evner)} @ Test offentlig ugyldig simpleTest () Edureka ', driver.getTitle ()) @ AfterTest offentlig ugyldig afterTest () {driver.quit ()}}

Jeg har delt hele testskriptet i tre testkommentarer. @BeforeTest, @Test og @AfterTest. I @BeforeTest har jeg brukt DesiredCapablities og RemoteWebDriver-objektene til å konfigurere min node. I @Test har jeg bedt Node om å navigere til Edurekas hjemmeside og hevde tittelen på siden. I @AfterTest har jeg bedt Node om å avslutte nettleserforekomsten.

Når testen har bestått utførelsen, får du utdataene nedenfor.

18. mai 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Oppdaget dialekt: OSS PASSED: simpleTest ======================= =========================== Standard test Testkjøring: 1, Feil: 0, Hopp over: 0 =========== ===================================================== =================================== Standard suite Totalt antall testkjøring: 1, Feil: 0, Hopp over: 0 = =================================================

Siden dette utføres som en TestNG-test, vil du få en detaljert testrapport som ligner på skjermbildet nedenfor.

Hvis du ikke vet hva som er TestNG og hva du skal bruke testkommentarer, kan du lese bloggen min om hvordan du bruker Selen WebDriver med TestNG fra denne Selenium-opplæringsserien.

Du kan se videoen nedenfor for å være vitne til en demonstrasjon av hvordan du bygger et selenett. Instruktøren som leverer videoen forklarer de samme konseptene som er forklart i denne bloggen.

Selenium Grid Tutorial For Beginners | Selen Tutorial | Edureka

Så det fører oss til slutten av denne Selen Grid-bloggen. Hvis du er i tvil eller har problemer med noen kode / innhold i denne bloggserien, kan du legge dem igjen i kommentarfeltet nedenfor, så vil jeg løse problemet ditt tidligst.

Hvis du ønsker å lære selen og bygge en karriere i testdomenet, kan du sjekke ut vårt interaktive live-online her, som kommer med 24 * 7 støtte for å veilede deg gjennom hele læringsperioden.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet, så kommer vi tilbake til deg.