Maven & Jenkins Integration med Selenium tutorial
Hvad er Jenkins i Selenium?
Jenkins er det førende open source værktøj til kontinuerlig integration udviklet af Hudson lab. Det er cross-platform og kan bruges på Windows, Linux, Mac OS og Solaris miljøer. Jenkins er skrevet i Java. Jenkins primære brug er at overvåge ethvert job, som kan være SVN checkout, cron eller en hvilken som helst applikationstilstand. Den udløser forudkonfigurerede handlinger, når et bestemt trin forekommer i job.
Vigtige egenskaber ved Jenkins
- Skift support: Jenkins genererer listen over alle ændringer udført i repositories som SVN.
- Permanente links: Jenkins giver direkte links til den seneste build eller mislykkede build, der kan bruges til nem kommunikation
- Installation: Jenkins er let at installere enten ved hjælp af direkte installationsfil (exe) eller war-fil til at implementere ved hjælp af applikationsserver.
- Email integration: Jenkins kan konfigureres til at e-maile indholdet af status for buildet.
- Nem konfiguration: Det er nemt at konfigurere forskellige opgaver på Jenkins.
- TestNG prøve: Jenkins kan konfigureres til at køre automatiseringstesten Testng efter hver build af SVN.
- Flere VM'er: Jenkins kan konfigureres til at distribuere buildet på flere maskiner.
- Projektopbygning: Jenkins dokumenterer detaljerne for jar, version af jar og kortlægning af build og jar-numre.
- Plugins: 3rd party plugin kan konfigureres i Jenkins til at bruge funktioner og yderligere funktionalitet.
Hvorfor Jenkins og Selenium?
- Løb Selenium test i Jenkins giver dig mulighed for at køre dine tests, hver gang din software ændres, og implementere softwaren til et nyt miljø, når testene består.
- Jenkins kan planlægge dine tests til at køre på et bestemt tidspunkt.
- Du kan gemme eksekveringshistorikken og testrapporterne.
- Jenkins understøtter Maven til at bygge og Test et projekt i kontinuerlig integration.
Hvad er Maven i Selenium?
Maven er et kraftfuldt projekt-/byggestyringsværktøj baseret på konceptet med en POM (Project Object Model), der inkluderer projektinformation og konfigurationsinformation for Maven såsom byggemappe, kildemappe, afhængighed, testkildemappe, mål, plugins osv. .
Hvorfor Maven & Jenkins
Selenium WebDriver er fantastisk til browserautomatisering. Men når du bruger det til at teste og bygge en testramme, føles det underpowered. Integrering af Maven med Selenium giver følgende fordele
Apache Maven giver support til at styre hele livscyklussen af et testprojekt.
- Maven bruges til at definere projektstruktur, afhængigheder, build og teststyring.
- Ved at bruge pom.xml(Maven) kan du konfigurere afhængigheder, der er nødvendige for at bygge test og køre kode.
- Maven downloader automatisk de nødvendige filer fra depotet, mens projektet bygges.
Sådan installerer du Maven og bruger den med TestNG Selenium
Her er trin til at installere Maven og bruge det med TestNG Selenium
Til denne tutorial vil vi bruge Eclipse (Juno) IDE til Java Udviklere til at konfigurere Selenium WebDriver projekt. Derudover skal vi tilføje m2eclipse plugin til Eclipse for at lette byggeprocessen og oprette pom.xml-fil.
Lad os tilføje m2eclipse plugin til Eclipse med følgende trin:
Trin 1) In Eclipse IDE, vælg Hjælp | Installer ny software fra Eclipse Hovedmenu.
Trin 2) Indtast URL'en i dialogboksen Installer https://www.eclipse.org/m2e/. Vælg Arbejde med og m2e plugin som vist i følgende skærmbillede:
Trin 3) Klik på Næste knap og afslut installationen.
Konfigurer Eclipse med Maven
Med m2e plugin er installeret, skal vi nu oprette Maven projekt.
Trin 1) In Eclipse IDE, opret et nyt projekt ved at vælge File (Felt) | Ny | Andet fra Eclipse menu.
Trin 2) På Ny dialog, vælg Maven | Maven projekt og klik på Næste
Trin 3) På Nyt Maven-projekt dialogboksen vælg Lav et simpelt projekt og klik på Næste
Trin 4) Indtast WebdriverTest i Gruppe-id: og Artefakt-id: og klik på Afslut
Trin 5) Eclipse vil skabe WebdriverTest med følgende struktur:
Trin 6) Højreklik på JRE Systembibliotek og vælg Ejendomme mulighed i menuen.
På Egenskaber for JRE System Library dialogboks, sørg for Workspace standard JRE er valgt, og klik på OK
Trin 7). Vælg pom.xml fra Projekt Explorer..
pom.xml-filen åbnes i Editor-sektionen
Trin 8) Tilsæt Selenium, Maven, TestNG, Junit afhængigheder til pom.xml i node:
<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>
Trin 9) Opret en ny TestNG klasse. Indtast Pakkenavn som "eksempel" og "NyTest" i Navn: tekstboks og klik på Finish knap som vist på følgende skærmbillede:
Trin 10). Eclipse vil oprette NewTest-klassen som vist på følgende skærmbillede:
Trin 11) Tilføj følgende kode til NyTest klasse:
Denne kode vil bekræfte titlen på Guru99 Selenium Side
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(); } }
Trin 12) Højreklik på WebdriverTest og vælg TestNG | Konverter til TestNG.
Eclipse vil oprette testng.xml, som siger, at du kun skal køre én test med navnet NyTest som vist på følgende skærmbillede:
Opdater projektet, og sørg for, at filen vises i træet Pakke Explorer (højreklik på projektet – Opdater).
Trin 13) Nu skal du køre test igennem dette testng.xml.
Så gå til Kør konfigurationer og oprette en ny lancering TestNG, vælg projektet og feltet Suite as testng.xml og klik på Kør
Sørg for, at bygningen blev afsluttet med succes.
Trin 14). Derudover skal vi tilføje
- maven-compiler-plugin
- maven-surefire-plugin
- testng.xml
til pom.xml.
Maven-surefire-plugin'et bruges til at konfigurere og udføre tests. Her bruges plugin til at konfigurere testing.xml for TestNG teste og generere testrapporter.
Maven-compiler-plugin'et bruges til at hjælpe med at kompilere koden og bruge den særlige JDK-version til kompilering. Tilføj alle afhængigheder i følgende kodestykke til pom.xml i node:
Trin 15) At køre the test i Mavens livscyklus, højreklik på WebdriverTest og vælg Løb som | Maven test. Maven vil udføre test fra projektet.
Sørg for, at bygningen blev afsluttet med succes.
Hvordan man integrerer Jenkins med Selenium webdriver
Her er trin til at installere Jenkins og konfigurere det til at køre Maven med TestNg Selenium
Installation
Trin 1) Gå til http://jenkins-ci.org/ og download den korrekte pakke til dit OS. Installer Jenkins.
Trin 2) Pak Jenkins ud til den angivne mappe. Kør exe-fil som vist i følgende skærmbillede:
Trin 3) In Jenkins 1.607 opsætning vindue klik på Næste .
Trin 4) Klik på Installer knappen til sidst.
Trin 5) Når installationen er færdig, skal du navigere til Jenkins Dashboard (http://localhost:8080 som standard) i browservinduet.
Trin 6) Klik på Ny vare link for at oprette et CI-job.
Trin 7) Vælg radioknappen Maven-projektet som vist på følgende skærmbillede:
Brug af Build a Maven projekt option, understøtter Jenkins opbygning og test af Maven-projekter.
Trin 8) Klik på knappen OK. Et nyt job med navnet "WebdriverTest" oprettes i Jenkins Dashboard.
Trin 9) Gå til Administrer Jenkins => Konfigurer system som vist i det følgende skærmbillede.
Klik på JDK installationer og konfigurer JDK som i følgende skærmbillede:
Trin 10) Gå til Byg del af nyt job.
- I Root POM tekstboks, indtast den fulde sti til pom.xml
- Indtast "ren test" i afsnittet Mål og muligheder
Trin 11) Klik på Ansøg .
Trin 12) På WebdriverTest-projektsiden skal du klikke på Byg nu .
Maven vil bygge projektet. Det vil den da have TestNG udføre testcaserne.
Trin 13) Når byggeprocessen er afsluttet, skal du i Jenkins Dashboard klikke på WebdriverTest projekt
Trin 14) WebdriverTest-projektsiden viser byggehistorikken og links til resultaterne som vist på følgende skærmbillede:
Trin 15) Klik på linket "Seneste testresultat" for at se testresultaterne som vist på følgende skærmbillede:
Trin 16). Vælg specifik build, og du vil se den aktuelle status ved at klikke på "konsoludgang".
Planlægning af Jenkins til automatisk udførelse.
Planlægning af builds (Selenium Tests) er en af de vigtige funktioner i Jenkins, hvor den automatisk udløser build, baseret på definerede kriterier. Jenkins tilbyder flere måder at udløse byggeprocessen under Build Trigger-konfigurationen.
For eksempel:
Indtast 0 23 * * * i skematekstfeltet som vist på det følgende skærmbillede. Dette vil udløse byggeprocessen hver dag kl. 11
Brug af Jenkings uden Maven
For at køre rent TestNg-script i Jenkins skal du indtaste følgende i build
D:>java -cp “Pathtolibfolder\lib\*;Pathtobinfolder\bin” org.testng.TestNG testng.xml
- Klik på knappen Gem.
- Bemærk: Den faktiske sti til lib og bin-mappen skal tilføjes ovenstående kommando.
- Efter at have gemt kommandoen, vil Jenkins bygge projektet på foruddefineret tid, og denne kommando vil blive kørt ved hjælp af TestNG.
- Resultatet vil blive gemt i tilpasset rapport HTML-fil, der kan sendes via e-mail med en Jenkin-konfiguration
- Output af koden vil være
Fordele ved at bruge Jenkins
- Tidlig problemfinding - Bug kan opdages i den tidlige fase af softwareudviklingen
- Automatisk integration – der kræves ingen særskilt indsats for at integrere alle ændringer
- Installer – et system, der kan implementeres på et hvilket som helst tidspunkt i udviklingen
- Optegnelser – delbygningsregistreringer vedligeholdes
- Support og plugins: En af grundene til Jenkins popularitet er tilgængeligheden af stor fællesskabssupport. Der er også masser af færdige plugins tilgængelige, som hjælper dig med at udvide dets funktionalitet.