Maven & Jenkins Integration med Selenium Handledning
Vad är Jenkins i Selenium?
Jenkins är det ledande verktyget för kontinuerlig integration med öppen källkod som utvecklats av Hudson lab. Den är plattformsoberoende och kan användas på Windows, Linux, Mac OS och Solaris miljöer. Jenkins är skriven i Java. Jenkins huvudsakliga användning är att övervaka alla jobb som kan vara SVN-utcheckning, cron eller valfri applikationstillstånd. Den aktiverar förkonfigurerade åtgärder när ett visst steg inträffar i jobb.
Viktiga egenskaper hos Jenkins
- Ändra support: Jenkins genererar listan över alla ändringar som gjorts i arkiv som SVN.
- Permanenta länkar: Jenkins tillhandahåller direktlänkar till den senaste konstruktionen eller misslyckade konstruktionen som kan användas för enkel kommunikation
- Installation: Jenkins är lätt att installera antingen med hjälp av direktinstallationsfil (exe) eller krigsfil att distribuera med hjälp av applikationsserver.
- E-postintegration: Jenkins kan konfigureras att e-posta innehållet i byggets status.
- Enkel konfiguration: Att konfigurera olika uppgifter på Jenkins är enkelt.
- TestNG testa: Jenkins kan konfigureras för att köra automationstestbygget Testng efter varje byggande av SVN.
- Flera virtuella datorer: Jenkins kan konfigureras för att distribuera bygget på flera maskiner.
- Projektuppbyggnad: Jenkins dokumenterar detaljerna för burken, versionen av burken och kartläggningen av bygg- och burknummer.
- Plugins: 3rd partyplugin kan konfigureras i Jenkins för att använda funktioner och ytterligare funktionalitet.
Varför Jenkins och Selenium?
- Springa Selenium tester i Jenkins låter dig köra dina tester varje gång din programvara ändras och distribuera programvaran till en ny miljö när testerna passerar.
- Jenkins kan schemalägga dina tester så att de körs vid en viss tidpunkt.
- Du kan spara exekveringshistoriken och testrapporterna.
- Jenkins stödjer Maven för att bygga och Testning ett projekt i kontinuerlig integration.
Vad är Maven i Selenium?
Maven är ett kraftfullt projekt-/bygghanteringsverktyg, baserat på konceptet med en POM (Project Object Model) som inkluderar projektinformation och konfigurationsinformation för Maven såsom byggkatalog, källkatalog, beroende, testkällkatalog, mål, plugins, etc. .
Varför Maven & Jenkins
Selenium WebDriver är utmärkt för webbläsarautomatisering. Men när du använder den för att testa och bygga ett testramverk känns den underdriven. Integrera Maven med Selenium ger följande förmåner
Apache Maven ger stöd för att hantera hela livscykeln för ett testprojekt.
- Maven används för att definiera projektstruktur, beroenden, build och testhantering.
- Med hjälp av pom.xml(Maven) kan du konfigurera beroenden som behövs för att bygga tester och köra kod.
- Maven laddar automatiskt ner nödvändiga filer från förvaret medan projektet bygger.
Hur man installerar Maven och använder den med TestNG Selenium
Här är steg för att installera Maven och använda den med TestNG Selenium
För den här handledningen kommer vi att använda Eclipse (Juno) IDE för Java Utvecklare att ställa in Selenium WebDriver-projekt. Dessutom måste vi lägga till m2eclipse plugin till Eclipse för att underlätta byggprocessen och skapa pom.xml-fil.
Låt oss lägga till m2eclipse plugin till Eclipse med följande steg:
Steg 1) In Eclipse IDE, välj Hjälp | Installera ny programvara från Eclipse Huvudmeny.
Steg 2) Ange URL:en i dialogrutan Installera https://www.eclipse.org/m2e/. Välj Arbeta med och m2e-plugin som visas i följande skärmdump:
Steg 3) Klicka på Nästa knappen och avsluta installationen.
Inställd Eclipse med Maven
Med m2e-plugin installerad behöver vi nu skapa Maven-projektet.
Steg 1) In Eclipse IDE, skapa ett nytt projekt genom att välja Fil | Nya | Övriga från Eclipse meny.
Steg 2) På Nya dialogrutan, välj Maven | Maven-projektet och klicka på Nästa
Steg 3) På Nytt Maven-projekt dialogrutan välj Skapa ett enkelt projekt och klicka på Nästa
Steg 4) Ange WebdriverTest i Grupp-ID: och Artefakt-ID: och klicka på slutför
Steg 5) Eclipse kommer skapa WebdriverTest med följande struktur:
Steg 6) Högerklicka på JRE Systembibliotek och välj Våra Bostäder alternativet från menyn.
På Egenskaper för JRE System Library dialogrutan, se till Arbetsyta standard JRE är markerat och klicka på OK
Steg 7). Välj pom.xml från Project Explorer..
pom.xml-filen öppnas i redigeringssektionen
Steg 8) Lägg till Selenium, Maven, TestNG, junit beroenden till pom.xml i nod:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.45.0</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.8.8</version> <scope>test</scope> </dependency> </dependencies>
Steg 9) Skapa en ny TestNG Klass. Ange paketnamn som "exempel" och "Nytt test" i Namn : textrutan och klicka på Finish knappen som visas i följande skärmdump:
Steg 10). Eclipse kommer att skapa NewTest-klassen som visas i följande skärmdump:
Steg 11) Lägg till följande kod till Nytt test klass:
Denna kod kommer att verifiera titeln på Guru99 Selenium Sida
package example; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; import org.testng.annotations.BeforeTest; import org.testng.annotations.AfterTest; public class NewTest { private WebDriver driver; @Test public void testEasy() { driver.get("http://demo.guru99.com/test/guru99home/"); String title = driver.getTitle(); Assert.assertTrue(title.contains("Demo Guru99 Page")); } @BeforeTest public void beforeTest() { driver = new FirefoxDriver(); } @AfterTest public void afterTest() { driver.quit(); } }
Steg 12) Högerklicka på WebdriverTest och välj TestNG | Konvertera till TestNG.
Eclipse kommer att skapa testng.xml som säger att du bara behöver köra ett test med namnet Nytt test som visas i följande skärmdump:
Uppdatera projektet och se till att filen visas i trädet Paketutforskare (högerklicka på projektet – Uppdatera).
Steg 13) Nu måste du testa detta testng.xml.
Så gå till Kör konfigurationer och skapa en ny lansering TestNG, välj projektet och fältet Suite as testng.xml och klicka på Kör
Se till att bygget slutfördes framgångsrikt.
Steg 14). Dessutom måste vi lägga till
- maven-kompilator-plugin
- maven-surefire-plugin
- testng.xml
till pom.xml.
Maven-surefire-pluginen används för att konfigurera och utföra tester. Här används plugin för att konfigurera testing.xml för TestNG testa och generera testrapporter.
Maven-compiler-plugin används för att hjälpa till att kompilera koden och använda den speciella JDK-versionen för kompilering. Lägg till alla beroenden i följande kodavsnitt till pom.xml i nod:
Steg 15) Att köra the tester i Mavens livscykel, högerklicka på WebdriverTest och välj Spring som | Maven test. Maven kommer att utföra test från projektet.
Se till att bygget slutfördes framgångsrikt.
Hur man integrerar Jenkins med Selenium webbdrivrutin
Här är steg för att installera Jenkins och konfigurera den för att köra Maven med TestNg Selenium
Installation
Steg 1) Gå till http://jenkins-ci.org/ och ladda ner rätt paket för ditt operativsystem. Installera Jenkins.
Steg 2) Packa upp Jenkins till angiven mapp. Kör exe-fil som visas i följande skärmdump:
Steg 3) In Jenkins 1.607-installation fönster klicka på Nästa knapp.
Steg 4) Klicka på installera knappen till slut.
Steg 5) När installationen är klar, navigera till Jenkins Dashboard (http://localhost:8080 som standard) i webbläsarfönstret.
Steg 6) Klicka på Nytt objekt länk för att skapa ett CI-jobb.
Steg 7) Välj alternativknappen för Maven-projektet som visas i följande skärmdump:
Använda Build a Maven-projektet alternativ, stödjer Jenkins att bygga och testa Maven-projekt.
Steg 8) Klicka på OK-knappen. Ett nytt jobb med namnet "WebdriverTest" skapas i Jenkins Dashboard.
Steg 9) Gå till Hantera Jenkins => Konfigurera system som visas i följande skärmdump.
Klicka på JDK-installationer och konfigurera JDK som i följande skärmdump:
Steg 10) Gå till Bygga avsnitt av nytt jobb.
- I Root POM textbox, ange hela sökvägen till pom.xml
- I avsnittet Mål och alternativ anger du "rent test"
Steg 11) Klicka på Ansök knapp.
Steg 12) På projektsidan för WebdriverTest klickar du på Bygg nu länken.
Maven kommer att bygga projektet. Det kommer det då att ha TestNG utföra testfallen.
Steg 13) När byggprocessen är klar klickar du på i Jenkins Dashboard WebdriverTest projektet
Steg 14) WebdriverTest-projektsidan visar bygghistoriken och länkar till resultaten som visas i följande skärmdump:
Steg 15) Klicka på länken "Senaste testresultat" för att se testresultaten som visas i följande skärmdump:
Steg 16). Välj specifik konstruktion så ser du aktuell status genom att klicka på "konsolutgång".
Schemalägger Jenkins för automatisk exekvering.
Schemalägga byggen (Selenium Tests) är en av de viktiga funktionerna i Jenkins där det automatiskt utlöser bygget, baserat på definierade kriterier. Jenkins tillhandahåller flera sätt att utlösa byggprocessen under Build Trigger-konfigurationen.
Till exempel:
Ange 0 23 * * * i textrutan Schema som visas i följande skärmdump. Detta kommer att utlösa byggprocessen varje dag kl. 11
Använder Jenkings utan Maven
För att köra rent TestNg-skript i Jenkins, skriv in följande i build
D:>java -cp “Pathtolibfolder\lib\*;Pathtobinfolder\bin” org.testng.TestNG testng.xml
- Klicka på knappen Spara.
- Obs: Den faktiska sökvägen till lib och bin-mappen måste läggas till i ovanstående kommando.
- Efter att ha sparat kommandot kommer Jenkins att bygga projektet på fördefinierad tid, och detta kommando kommer att köras med TestNG.
- Resultatet kommer att lagras i en anpassad rapport HTML-fil som kan skickas via e-post med en Jenkin-konfiguration
- Utmatning av koden kommer att vara
Fördelar med att använda Jenkins
- Tidig upptäckt av problem – Bug kan upptäckas i den tidiga fasen av mjukvaruutvecklingen
- Automatisk integration – ingen separat ansträngning krävs för att integrera alla ändringar
- Installer – ett driftsättbart system tillgängligt när som helst under utveckling
- Records – delbyggnadsrekord bibehålls
- Support och plugins: En av anledningarna till Jenkins popularitet är tillgången till stort communitysupport. Dessutom finns massor av färdiga plugins tillgängliga som hjälper dig att utöka dess funktionalitet.