Maven & Jenkins-integratie met Selenium: volledige zelfstudie

Wat is Jenkins?

Jenkins is de toonaangevende open-source tool voor continue integratie die is ontwikkeld door Hudson Lab. Het is platformonafhankelijk en kan worden gebruikt in Windows-, Linux-, Mac OS- en Solaris-omgevingen. Jenkins is geschreven in Java. Het belangrijkste gebruik van Jenkin is het bewaken van elke taak die SVN-checkout, cron of andere toepassingsstatussen kan zijn. Het activeert vooraf geconfigureerde acties wanneer een bepaalde stap in taken plaatsvindt.

In deze tutorial zullen we leren:

Belangrijke kenmerken van Jenkins

  • Ondersteuning voor wijzigingen: Jenkins genereert de lijst met alle wijzigingen die zijn aangebracht in repositories zoals SVN.
  • Permanente links: Jenkins biedt directe links naar de nieuwste build of mislukte build die kan worden gebruikt voor eenvoudige communicatie
  • Installatie: Jenkins is eenvoudig te installeren met behulp van een direct installatiebestand (exe) of een warbestand om te implementeren met behulp van de applicatieserver.
  • E-mailintegratie: Jenkins kan worden geconfigureerd om de inhoud van de status van de build te e-mailen.
  • Eenvoudige configuratie: het configureren van verschillende taken op Jenkins is eenvoudig.
  • TestNG-test: Jenkins kan worden geconfigureerd om de automatiseringstest uit te voeren waarop is gebouwd Testng na elke build van SVN.
  • Meerdere VM's: Jenkins kan worden geconfigureerd om de build op meerdere machines te distribueren.
  • Project build: Jenkins documenteert de details van jar, versie van jar en mapping van build- en jar-nummers.
  • Plug-ins: 3rdparty-plug-in kan in Jenkins worden geconfigureerd om functies en extra functionaliteit te gebruiken.

Waarom Jenkins en Selenium?

  • Door Selenium-tests in Jenkins uit te voeren, kunt u uw tests uitvoeren telkens wanneer uw software verandert en de software in een nieuwe omgeving implementeren wanneer de tests slagen.
  • Jenkins kan plannen dat uw tests op een bepaald tijdstip worden uitgevoerd.
  • U kunt de uitvoeringsgeschiedenis en testrapporten opslaan.
  • Jenkins ondersteunt Maven bij het bouwen en testen van een project in continue integratie.

Wat is Maven?

Maven is een krachtige tool voor project- / buildbeheer, gebaseerd op het concept van een POM (Project Object Model) dat projectinformatie en configuratie-informatie voor Maven bevat, zoals constructiemap, bronmap, afhankelijkheid, testbronmap, doelen, plug-ins, enz. .

Waarom Maven & Jenkins

Selenium WebDriver is geweldig voor browserautomatisering. Maar wanneer het wordt gebruikt voor het testen en bouwen van een testraamwerk, voelt het te weinig kracht. Het integreren van Maven met Selenium biedt de volgende voordelen:
Apache Maven biedt ondersteuning voor het beheren van de volledige levenscyclus van een testproject.

  • Maven wordt gebruikt om projectstructuur, afhankelijkheden, build- en testbeheer te definiëren.
  • Met pom.xml(Maven) kunt u afhankelijkheden configureren die nodig zijn voor het bouwen van test- en uitvoeringscode.
  • Maven downloadt automatisch de benodigde bestanden uit de repository tijdens het bouwen van het project.

Stappen om Maven te installeren en te gebruiken met TestNG Selenium

Voor deze zelfstudie gebruiken we Eclipse (Juno) IDE voor Java-ontwikkelaars om Selenium WebDriver Project in te stellen. Bovendien moeten we de m2eclipse-plug-in aan Eclipse toevoegen om het bouwproces te vergemakkelijken en het pom.xml-bestand te maken.
Laten we de m2eclipse-plug-in toevoegen aan Eclipse met de volgende stappen:

Stap 1) Selecteer in Eclipse IDE Helpen | Nieuwe software installeren uit het Eclipse-hoofdmenu.

Stap 2) Voer in het dialoogvenster Installeren de URL in http://download.eclipse.org/technology/m2e/releases/ . Selecteer Werk met en m2e-plug-in zoals weergegeven in de volgende schermafbeelding:

Stap 3) Klik op Volgende knop en voltooi de installatie.

Eclipse configureren met Maven

Nu de m2e-plug-in is geïnstalleerd, moeten we nu een Maven-project maken.

Stap 1) Maak in Eclipse IDE een nieuw project door te selecteren Bestand | Nieuw | Ander uit het Eclipse-menu.

Stap 2) Op de Nieuw dialoog, selecteer Maven | Maven-project en klik op Volgende

Stap 3) Op de Nieuw Maven-project dialoog selecteer de Maak een eenvoudig project en klik op Volgende

Stap 4) Voer WebdriverTest in in Groeps-ID : en Artefact-ID : en klik op voltooien

Stap 5) Eclipse zal creëren WebdriverTest met volgende structuur:

Stap 6) Klik met de rechtermuisknop op JRE-systeembibliotheek en selecteer de Eigendommen optie uit het menu.

Op de Eigenschappen voor JRE-systeembibliotheek dialoogvenster, zorg ervoor dat Werkruimte standaard JRE is geselecteerd en klik op OK

Stap 7) . Selecteer pom.xml van Projectverkenner ..

pom.xml-bestand wordt geopend in de Editor-sectie

Stap 8) Voeg de Selenium, Maven, TestNG, Junit afhankelijkheden van pom.xml in het knooppunt: |_+_|

Stap 9) Maak een nieuwe TestNG-klasse aan. Voer Pakketnaam in als 'voorbeeld' en 'NieuweTest' in de Naam : tekstvak en klik op de Finish zoals weergegeven in de volgende schermafbeelding:

Stap 10) . Eclipse maakt de NewTest-klasse, zoals weergegeven in de volgende schermafbeelding:

Stap 11) Voeg de volgende code toe aan de NieuwTest klas:

Deze code verifieert de titel van Guru99 Selenium Page |__+_|

Stap 12) Klik met de rechtermuisknop op de WebdriverTest en selecteer TestNG | Converteren naar TestNG .
Eclipse zal testng.xml maken waarin staat dat u slechts één test hoeft uit te voeren met de naam NieuwTest zoals weergegeven in de volgende schermafbeelding:

Werk het project bij en zorg ervoor dat het bestand in de boomstructuur verschijnt Pakketverkenner (klik met de rechtermuisknop op het project - Vernieuwen).

Stap 13) Nu moet je dit testen testng.xml.

Ga dus naar de Configuraties uitvoeren en maak een nieuwe lancering TestNG , selecteer het project en veld Volgend op als testng.xml en klik op Uitvoeren

Zorg ervoor dat de build met succes is voltooid.

Stap 14) . Bovendien moeten we toevoegen:

  1. maven-compiler-plug-in
  2. maven-surefire-plugin
  3. testng.xml

naar pom.xml .

De maven-surefire-plugin wordt gebruikt om tests te configureren en uit te voeren. Hier wordt de plug-in gebruikt om de testing.xml voor TestNG-test te configureren en testrapporten te genereren.

De maven-compiler-plug-in wordt gebruikt om te helpen bij het compileren van de code en het gebruik van de specifieke JDK-versie voor compilatie. Voeg alle afhankelijkheden in het volgende codefragment toe aan pom.xml in het knooppunt:

Stap 15) om dit uit te voeren En tests in de Maven-levenscyclus, klik met de rechtermuisknop op de WebdriverTest en selecteer Rennen als | Maven-test . Maven zal de test van het project uitvoeren.

Zorg ervoor dat de build met succes is voltooid.

Stappen om Jenkins te installeren en te configureren om Maven uit te voeren met TestNg Selenium

Installatie

Stap 1) Ga naar http://jenkins-ci.org/ en download het juiste pakket voor uw besturingssysteem. Installeer Jenkins.

Stap 2) Pak Jenkins uit in de opgegeven map. Voer het exe-bestand uit zoals weergegeven in de volgende schermafbeelding:

Stap 3) In Jenkins 1.607-configuratie venster klik op Volgende knop.

Stap 4) Klik op Installeren knop op het einde.

Stap 5) Nadat de installatie is voltooid, navigeert u naar het Jenkins-dashboard (standaard http://localhost:8080) in het browservenster.

Stap 6) Klik op de Nieuw item link om een ​​CI-taak te maken.

Stap 7) Selecteer het keuzerondje Maven-project zoals weergegeven in de volgende schermafbeelding:

De Build a . gebruiken Maven-project optie ondersteunt Jenkins bij het bouwen en testen van Maven-projecten.

Stap 6) Klik op de OK-knop. Een nieuwe job met de naam 'WebdriverTest' wordt aangemaakt in Jenkins Dashboard.

Stap 7) Ga naar Jenkins beheren => Systeem configureren zoals weergegeven in de volgende schermafbeelding.

Klik op JDK-installaties en configureer JDK zoals in de volgende schermafbeelding:

Stap 8) Ga naar de Bouwen onderdeel nieuwe baan.

  • In de Root POM tekstvak, voer het volledige pad naar pom.xml in
  • Voer in het gedeelte Doelen en opties 'schone test' in

Stap 9) Klik op Van toepassing zijn knop.

Stap 10) Klik op de projectpagina van WebdriverTest op de Nu bouwen koppeling.

Maven zal het project bouwen. Vervolgens zal TestNG de testgevallen laten uitvoeren.

Stap 11) Zodra het bouwproces is voltooid, klikt u in Jenkins Dashboard op de WebdriverTest projecteren

Stap 12) De WebdriverTest-projectpagina toont de bouwgeschiedenis en koppelingen naar de resultaten, zoals weergegeven in de volgende schermafbeelding:

Stap 13) Klik op de link 'Laatste testresultaat' om de testresultaten te bekijken zoals weergegeven in de volgende schermafbeelding:

Stap 14) . Selecteer een specifieke build en u ziet de huidige status door op ' console-uitgang '.

Jenkins plannen voor automatische uitvoering.

Het plannen van builds (Selenium Tests) is een van de belangrijke functies van Jenkins, waar het automatisch de build activeert op basis van gedefinieerde criteria. Jenkins biedt meerdere manieren om het bouwproces te activeren onder de Build Trigger-configuratie.

Bijvoorbeeld:
Voer 0 23 * * * in het tekstvak Planning in, zoals weergegeven in de volgende schermafbeelding. Hierdoor wordt het bouwproces elke dag om 23.00 uur geactiveerd.

Jenkings gebruiken zonder Maven

Voer het volgende in build in om het pure TestNg-script in Jenkins uit te voeren:

D:>java -cp 'Pathtolibfolderlib*;Pathtobinfolderin' org.testng.TestNG testng.xml

  • Klik op de knop Opslaan.
  • Opmerking: het daadwerkelijke pad van de lib- en bin-map moet de bovenstaande opdracht toevoegen.
  • Na het opslaan van de opdracht, zal Jenkins het project bouwen in een vooraf gedefinieerde tijd, en deze opdracht zal worden uitgevoerd met TestNG.
  • Het resultaat wordt opgeslagen in een HTML-bestand met een aangepast rapport dat via e-mail kan worden verzonden met een Jenkin-configuratie
  • De uitvoer van de code zal zijn:

Voordelen van het gebruik van Jenkins

  1. Vroegtijdige probleemopsporing - Bug kan worden gedetecteerd in de vroege fase van de softwareontwikkeling
  2. Automatische integratie – geen aparte inspanning nodig om alle wijzigingen te integreren
  3. Installateur – een inzetbaar systeem dat beschikbaar is op elk punt van ontwikkeling
  4. Records - part build records bijgehouden
  5. Ondersteuning en plug-ins: Een van de redenen voor Jenkin's populariteit is de beschikbaarheid van grote community-ondersteuning. Er zijn ook veel kant-en-klare plug-ins beschikbaar die u helpen de functionaliteit uit te breiden.