Sätta upp ett selenät för distribuerat selen-test



Den här bloggen hjälper dig att förstå behovet av Selen Grid och dess fördelar. Läs det för att konfigurera ditt första Selen Grid genom att konfigurera nav och noder.

De andra bloggarna i denna Selenium-handledningsserie talar om skapandet av testfall och utförande av dessa testfall i följd och parallellt. Så den sista tekniken kvar för diskussion är utförande av testfall i fjärrmaskiner. Selen Grid kan användas för att utföra dessa tester på fjärrmaskiner / värdar. Därför är det diskussionsämnet för dagens blogg.

  1. Varför och när ska jag använda Selen Grid?
  2. Vad är Selen Grid?
  3. Selen Grid 1 vs. Selen Grid 2
  4. Arkitektur av Selen Grid
  5. Bygga ett selenät

Varför och när ska jag använda Selen Grid?

Det finns så många webbläsare som används idag. Användare kan använda antingen Chrome eller Firefox eller Safari eller Opera eller till och med Internet Explorer för att läsa den här bloggen. De kan använda olika versioner av webbläsarna. De kan också köra dessa webbläsare på alla operativsystem, oavsett om det är Windows eller Mac eller Ubuntu eller någon annan distribution av Linux.





Vad händer om användarna ser något viktigt på internet? Något viktigt för ditt företag. Skulle du inte vilja gå den extra milen (testa webbappen) bara för att säkerställa att dina användare och / eller kunder får den bästa användarupplevelsen? Du skulle, eller hur?

Det borde du!



Men frågan är, hur genomförbart är det? Kommer du att kunna spendera tid på att testa din webbapp på alla möjliga operativsystem och alla tillgängliga webbläsare? Hmm, det låter som en liten utmaning. Det är här Selenium Grid passar räkningen och hjälperspara tid och energi.

Utöver detta uppstår ytterligare en fråga: Är det lönsamt att installera selenätinfrastruktur med hjälp av lokala system? Att upprätthålla ett rutnät med alla nödvändiga webbläsare och operativsystem är en utmaning. För detta finns det flera onlineplattformar som tillhandahåller ett online Selen Grid som du kan komma åt för att köra dina selenautomationsskript. Du kan till exempel använda LambdaTest . Den har mer än 2000 webbläsarmiljöer där du kan köra dina tester och automatiskt testa webbläsare.

Vad är Selen Grid?

Selen Grid är ett annat viktigt verktyg i Selenium-verktygen. Grid kan samordna WebDriver-tester / RC-tester som kan köras samtidigt i flera webbläsare eller kan initieras på olika operativsystem eller till och med värd på olika maskiner.



nätverk - selenSå, hur fungerar det? Grid använder en Hub-Node-arkitektur där det finns en Hub som fungerar som master och en eller flera noder som fungerar som slavar.

Vad detta betyder är att om du har totalt 100 jobb / tester som behöver utföras, kan testerna utföras samtidigt i 5 maskiner, där varje maskin kör 20 tester. Faktum är att du kan utföra dessa tester i olika kombinationer av operativsystem och webbläsare. Varje maskin här kan ha olika operativsystem och inuti varje operativsystem kan testerna utföras på olika webbläsare.

Denna handling skulle enkelt spara mycket av din tid vid testutförande. Om du överväger exemplet ovan kan vi minska körningstiden till cirka 1/5 av den totala tiden det tar att utföra tester på en enda maskin.

Om du kan komma ihåg från mina tidigare bloggar har jag nämnt ett oräkneligt antal gånger att Grid var en del av Selen-projektet sedan starten, dvs. sedan Selen v1. Selen Grid var också en del av Selen v2 och för närvarande är det en del av Selen v3. Det är inte mycket skillnad i v2 och v3 i Selen Grid. V1 har dock många skillnader jämfört. Så, låt ossförstå skillnaderna mellan v1 och v2.

vad betyder namnrymd i c ++

Selen Grid 1 vs. Selen Grid 2

Den grundläggande skillnaden mellan Grid v1.0 och v2.0 är att RC användes i Grid 1 och WebDriver användes i Grid 2. Tabellen nedan förklarar skillnaderna i detalj.

Rutnät 1 Rutnät 2
Kräver att Apache Ant installerasApache Ant-installation krävs inte
Har sin egen fjärrkontroll (Detta skiljer sig från RC-servern)Medföljer Selenium Server jar-fil
Stöder endast Selenium RC-kommandonStöder både Selenium RC och WebDriver-skript
Du kan bara automatisera en webbläsare per fjärrkontrollDu kan automatisera upp till fem webbläsare per fjärrkontroll


Nu när vi har lärt oss de grundläggande skillnaderna mellan de två versionerna, låt oss djupt dyka in i Selen Grid.

Arkitektur Av Selen Grid

Som jag nämnde tidigare fungerar Grid baserat på en Hub och flera noder. Men vad är Hub och Noder och vad gör de?

Navet

I valfri Grid-installation kan det bara finnas en Hub och det kommer att vara den centrala punkten i den Grid-installationen. Alla tester som måste utföras bör laddas här. Trots att testerna laddas här kommer de endast att utföras på noderna. Vi kan konfigurera vilken värdmaskin som vår Hub, och den kommer att samordna aktiviteterna för testkörning i andra värdar.

För att detta ska hända måste vi först konfigurera navet och sedan göra andra noder för att registrera sig till navet. Innan jag går in i för många detaljer, låt mig visa dig kommandot för att konfigurera navet.

Konfigurera navet

Du måste först ladda ner JAR-filen för Selenium-servern från Seleniumhqs webbplats. Länken är här . Du måste också se till att Java är installerat i ditt system och att miljövariablerna är inställda.

När du har laddat ner jar-filen måste du placera den i en lämplig katalog. För min bekvämlighet har jag laddat ner den och placerat den i Selenium-mappen i C Drive. Det rekommenderas att du också laddar ner jar-filen och placerar den i en liknande katalog i alla andra noder.

ställa in klassbana i Java

För att konfigurera navet måste du köra kommandot i Windows-kommandotolken. Kommandot finns i utdraget nedan.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selen C: Selen> java -jar selen-server-standalone-3.4.0.jar -role hub

De selen-server-fristående-3.4.0.jar är namnet på jar-filen jag laddade ner.
De -roll flaggan används för att ställa in den specifika värdmaskinen som navet. När du trycker på enter kommer du att få utmatningen nedan på skärmen.

Om du inte märkte ovanstående skärmdump, se den igen. Det står ' -Noder ska registrera sig på http://192.168.0.11:4444/grid/register '. Nu när hubben är konfigurerad måste vi ställa in noderna och ansluta dem till den här hubben.

192.168.0.11 är hubbens IP-adress och varje nod ska ansluta till denna IP-adress. 4444 är det standardportnummer som Selenium Grid får värd för och lyssnar på förfrågningar. Om någon annan tjänst körs på port 4444 och du vill att Selenium Grid ska vara värd för en annan port, kan du göra det genom att ange -hamn flagga följt av portnummer.

Noderna

Noderna är de värdmaskiner som testen körs på. Dessa tester kommer att lanseras av Hub. Hubben kan starta en eller flera noder antingen på fjärrmaskiner eller samma maskin där själva navet finns. På var och en av noderna kan olika operativsystem startas och på olika operativsystem kan olika versioner av samma webbläsare eller olika webbläsare startas.

Konfigurera noderna

I likhet med navet måste du först ladda ner Jar-filen i Node-maskinerna och placera den på C-enheten eller någon annan vanlig katalog för din bekvämlighet. Du kan sedan köra kommandot nedan i Windows-kommandotolken. Om du startar till och med noden på samma maskin som din hub måste du köra kommandot genom att starta en annan kommandotolk.

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

Det finns bara några skillnader i detta kommando jämfört med kommandot som behövs för att starta navet.
-Dwebdriver.chrome.driver = E: chromedriver.exe används för att ställa in sökvägen till webbläsardrivrutinen. På samma sätt som att ställa in sökvägen till webbläsardrivrutinen i din WebDriver-kod, anger du den här så att noden kan utföra tester. Från och med Selenium v3 måste du ladda ner drivrutinens webbläsare för Firefox. Webbläsardrivrutinen för Firefox är Gecko-drivrutin. I version 1 och 2 måste du dock ställa in webbläsardrivrutinen för alla andra webbläsare än Firefox.
-rollnod flagga används för att ställa in den specifika värddatorn som nod.
-hub http://192.168.0.11:4444/grid/register informerar noden om att ansluta till Hub med hjälp av Hubns IP-adress. En viktig punkt att notera är att om du startar någon nod på samma maskin som din Hub kan du ange ” -hub http: // lokal värd: 4444 / rutnät / register 'I kommandot istället för Hubns IP-adress.

När du trycker på enter kommer du att få utmatningen nedan på kommandotolken.

Nu skulle noden ha varit ansluten till navet. Du kan verifiera det genom att gå tillbaka till kommandotolken som används för att starta navet och du kommer att märka följande meddelande: ‘ Registrerade en nod http://192.168.0.11:5555 '.

IP-adressen och portnumret är det för din nod. Eftersom jag har min nod på samma maskin som min hub är porten som används för noden 5555. När du initierar den på någon annan maskin kommer standardporten att användas.

När du startar följande webbadress i din Hubs maskin får du status för de noder som är anslutna till din Hub. Se den markerade delen på skärmdumpen nedan.

Nu när ditt Selen Grid är konfigurerat kan du fortsätta till körningen av testskript på noder. Låt mig betona på nytt att vi måste köra skript i vår Hub och de kommer att köras i våra noder. Skriptet som används för att utföra testerna liknar WebDrivertester.

Bygga ett selenät

Jag har kört mitt skript i Eclipse IDE. Körningen av detta skript är beroende av två viktiga bibliotekspaket. Dom är DesiredCapabilities objekt och RemoteWebDriver objekt.

DesiredCapabilities används för att ställa in webbläsartyp och operativsystem för vår nod. Använd nedanstående kod för att importera DesiredCapabilities-objekt.

importera org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver används för att välja den nod som vi vill utföra testet på. För att importera RemoteWebDriver-objekt använder du nedanstående kodrader.

hur man installerar php på fönster
importera java.net.MalformedURLException importera java.net.URL importera org.openqa.selenium.remote.RemoteWebDriver

Jag har importerat dessa två paket tillsammans med TestNG-kommentarpaketet för mitt skript som visas i kodavsnittet nedan. Jag har importerat TestNG-anteckningar eftersom jag har kört detta som ett TestNG-test för vilket en detaljerad rapport kommer att genereras. Jag skulle rekommendera dig att importera samma uppsättning paket för din kod.

När du manövrerar över logotyperna till en webbläsare som finns i Selenium Hub-konsolen får du detaljerna som webbläsarnamn och den plattform av den nod du vill automatisera. Bilden visar också hur många instanser av webbläsare jag kan öppna i min nod. Jag kan konfigurera högst 5 krom-, 5 Firefox- och 1 Internet Explorer-instanser. Dessa detaljer finns i nedanstående skärmdump.

Du kan använda koden i utdraget nedan för att ställa in ditt första rutnät.

paket 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 importerar org.openqa.selenium.remote.DesiredCapabilities importerar org.openqa.selenium.remote.RemoteWebDriver allmän klass TestGrid {statisk WebDriver-drivrutin statisk strängnodUrl @BeforeTest offentlig ogiltig inställning () kastar Felformat nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilitiesmöjligheter = DesiredCapabilities.chrome () skills.setBrowserName ('chrome' )möjligheter. setPlatform (Platform.WINDOWS) -drivrutin = ny RemoteWebDriver (ny URL (nodeUrl) ), funktioner)} @Test offentligt ogiltigt simpleTest () Edureka ', driver.getTitle ()) @AfterTest offentligt ogiltigt efter test () {driver.quit ()}}

Jag har delat upp hela testskriptet i tre testanteckningar. @BeforeTest, @Test och @AfterTest. I @BeforeTest har jag använt DesiredCapablities och RemoteWebDriver-objekten för att konfigurera min nod. I @Test har jag bett noden att navigera till Edurekas hemsida och hävda sidans titel. I @AfterTest har jag bett noden att avsluta webbläsarinstansen.

När ditt test klarar körningen får du nedanstående utdata.

18 maj 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detekterad dialekt: OSS PASSAD: simpleTest ======================= =========================== Standardtest Tester körs: 1, misslyckanden: 0, hoppar över: 0 ========== ===================================================== =================================== Standardpaket Totalt antal testkörningar: 1, Fel: 0, Hoppar över: 0 = =================================================

Eftersom detta utförs som ett TestNG-test får du en detaljerad testrapport som liknar nedanstående skärmdump.

Om du inte vet vad som är TestNG och hur du använder testanteckningar, läs min blogg om hur du använder Selen WebDriver med TestNG från den här Selenium-handledningsserien.

Du kan se videon nedan för att bevittna en demonstration av hur man bygger ett Selen Grid. Instruktören som levererar videon förklarar samma begrepp som förklaras i den här bloggen.

Selenium Grid Tutorial för nybörjare | Selen Tutorial | Edureka

Så det tar oss till slutet av denna Selenium Grid-blogg. Om du är osäker eller har problem med någon kod / innehåll i denna bloggserie, vänligen lämna dem i kommentarfältet nedan så kommer jag att lösa ditt problem tidigt.

Om du vill lära dig selen och bygga en karriär inom testdomänen, kolla in vår interaktiva, live-online här kommer det med 24 * 7 support för att vägleda dig under hela din inlärningsperiod.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.