Maven & Jenkins Integratie met Selenium Tutorial
Waar zit Jenkins in? Selenium?
Jenkins is de toonaangevende open-source tool voor continue integratie, ontwikkeld door Hudson Lab. Het is platformonafhankelijk en kan worden gebruikt Windows, Linux, MacOS en Solaris omgevingen. Jenkins is geschreven Java. Het belangrijkste gebruik van Jenkin is het monitoren van elke taak, zoals SVN-checkout, cron of applicatiestatussen. Het activeert vooraf geconfigureerde acties wanneer een bepaalde stap in taken plaatsvindt.
Belangrijke kenmerken van Jenkins
- Ondersteuning voor wijzigingen: Jenkins genereert een lijst met alle wijzigingen die zijn aangebracht in opslagplaatsen zoals SVN.
- Permanente links: Jenkins biedt directe links naar de nieuwste build of mislukte build die kunnen worden gebruikt voor eenvoudige communicatie
- Installatie: Jenkins is eenvoudig te installeren met behulp van een direct installatiebestand (exe) of een oorlogsbestand dat kan worden geïmplementeerd via de applicatieserver.
- E-mail integratie: Jenkins kan zo worden geconfigureerd dat de inhoud van de status van de build per e-mail wordt verzonden.
- Eenvoudige configuratie: Het configureren van verschillende taken op Jenkins is eenvoudig.
- TestNG test: Jenkins kan worden geconfigureerd om de automatiseringstest uit te voeren Testen na elke build van SVN.
- Meerdere VM's: Jenkins kan worden geconfigureerd om de build over meerdere machines te distribueren.
- Projectopbouw: Jenkins documenteert de details van jar, jar-versie en toewijzing van build- en jar-nummers.
- Plugins: 3rd party-plug-in kan in Jenkins worden geconfigureerd om functies en extra functionaliteit te gebruiken.
Waarom Jenkins en Selenium?
- Hardlopen Selenium Met tests in Jenkins kunt u uw tests uitvoeren elke keer dat uw software verandert, en de software in een nieuwe omgeving implementeren wanneer de tests slagen.
- Jenkins kan uw tests plannen zodat ze op een specifiek tijdstip worden uitgevoerd.
- U kunt de uitvoeringsgeschiedenis en testrapporten opslaan.
- Jenkins ondersteunt Maven bij het bouwen en Testen een project in continue integratie.
Waar zit Maven in? Selenium?
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 constructiedirectory, brondirectory, afhankelijkheid, testbrondirectory, doelen, plug-ins, enz. .
Waarom Maven & Jenkins
Selenium WebDriver is geweldig voor browserautomatisering. Maar als je het gebruikt voor het testen en bouwen van een testframework, voelt het ondermaats aan. Maven integreren met Selenium biedt de volgende voordelen
Apache Maven biedt ondersteuning bij het beheren van de volledige levenscyclus van een testproject.
- Maven wordt gebruikt om de projectstructuur, afhankelijkheden, build en testbeheer te definiëren.
- Met pom.xml(Maven) kunt u de afhankelijkheden configureren die nodig zijn voor het bouwen van testen en het uitvoeren van code.
- Maven downloadt automatisch de benodigde bestanden uit de repository tijdens het bouwen van het project.
Hoe Maven te installeren en te gebruiken met TestNG Selenium
Hier volgen de stappen om Maven te installeren en te gebruiken TestNG Selenium
Voor deze tutorial zullen we gebruiken Eclipse (Juno) IDE voor Java Ontwikkelaars om op te zetten Selenium WebDriver Project. Daarnaast moeten we de m2eclipse plugin toevoegen aan Eclipse 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) In Eclipse IDE, selecteer Help | Installeer nieuwe software van Eclipse Hoofdmenu.
Stap 2) Voer in het dialoogvenster Installeren de URL in https://www.eclipse.org/m2e/. Selecteer Werk met en de m2e-plug-in zoals weergegeven in de volgende schermafbeelding:
Stap 3) Klik op Volgende knop en voltooi de installatie.
Configure Eclipse met Maven
Nu de m2e-plug-in is geïnstalleerd, moeten we nu een Maven-project maken.
Stap 1) In Eclipse IDE, maak een nieuw project door te selecteren Dien in | Nieuw | Overige van Eclipse menu.
Stap 2) Op de Nieuw dialoogvenster, selecteer Maven | Maven-project en klik op Volgende
Stap 3) Op de Nieuw Maven-project dialoogvenster selecteer de Maak een eenvoudig project en klik op Volgende
Stap 4) Voer WebdriverTest in Groeps-ID: en Artefact-ID: en klik op Voltooien
Stap 5) Eclipse zal maken WebdriverTest met de volgende structuur:
Stap 6) Klik met de rechtermuisknop op JRE-systeembibliotheek in en selecteer het Aanbod optie uit het menu.
Op de Eigenschappen voor JRE-systeembibliotheek dialoogvenster, zorg ervoor Standaard-JRE van de werkruimte is geselecteerd en klik op OK
Stap 7). Kiezen pom.xml van Projectverkenner..
pom.xml-bestand wordt geopend in de Editor-sectie
Stap 8) Voeg de Selenium, Maven, TestNG, Juniet afhankelijkheden van pom.xml in de knooppunt:
<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>
Stap 9) Maak een nieuw TestNG Klas. Voer de pakketnaam in als “example” en “NewTest” in het Naam: tekstvak en klik op de Finish knop zoals weergegeven in de volgende schermafbeelding:
Stap 10). Eclipse zal de klasse NewTest aanmaken zoals getoond in de volgende schermafbeelding:
Stap 11) Voeg de volgende code toe aan de NieuwTest klasse:
Deze code verifieert de titel van Guru99 Selenium Pagina
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("https://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(); } }
Stap 12) Klik met de rechtermuisknop op de WebdriverTest en selecteer TestNG | Omzetten naar TestNG.
Eclipse zal testng.xml aanmaken 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 u de test hier doorheen uitvoeren testenng.xml.
Dus, ga naar de Configuraties uitvoeren en maak een nieuwe lancering TestNG, selecteer het project en het veld Suite as testenng.xml en klik op Uitvoeren
Zorg ervoor dat de build met succes is voltooid.
Stap 14). Bovendien moeten we toevoegen
- maven-compiler-plug-in
- maven-surefire-plug-in
- testenng.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 test.xml te configureren TestNG testen en testrapporten genereren.
De maven-compiler-plugin wordt gebruikt om te helpen bij het compileren van de code en het gebruiken van de specifieke JDK-versie voor compilatie. Voeg alle afhankelijkheden in het volgende codefragment toe aan pom.xml in de knooppunt:
Stap 15) Om th uit te voerene 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.
Hoe integratie van Jenkins met Selenium webdriver
Hier zijn de stappen om Jenkins te installeren en te configureren om Maven met TestNg uit te voeren 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 naar de opgegeven map. Voer het exe-bestand uit zoals weergegeven in de volgende schermafbeelding:
Stap 3) In Jenkins 1.607-installatie venster klik op Volgende knop.
Stap 4) Klik op Install knop op het einde.
Stap 5) Zodra de installatie is voltooid, navigeert u naar het Jenkins Dashboard (standaard http://localhost:8080) in het browservenster.
Stap 6) Klik op de Nieuw item koppeling om een CI-taak te maken.
Stap 7) Selecteer het keuzerondje voor het Maven-project, zoals weergegeven in de volgende schermafbeelding:
Met behulp van de build a Maven-project optie ondersteunt Jenkins het bouwen en testen van Maven-projecten.
Stap 8) Klik op de OK-knop. Er wordt een nieuwe taak met de naam “WebdriverTest” gemaakt in Jenkins Dashboard.
Stap 9) Ga naar Beheer Jenkins => Systeem configureren zoals weergegeven in de volgende schermafbeelding.
Klik op JDK-installaties en configureer JDK zoals in de volgende schermafbeelding:
Stap 10) Ga naar uw Bouw gedeelte nieuwe baan.
- In de Wortel POM tekstvak, voer het volledige pad naar pom.xml in
- Voer in het gedeelte Doelen en opties 'schone test' in
Stap 11) Klik op Solliciteer knop.
Stap 12) Op de WebdriverTest-projectpagina klikt u op de Bouwen Nu link.
Maven zal het project bouwen. Dat zal dan wel het geval zijn TestNG voer de testgevallen uit.
Stap 13) Zodra het bouwproces is voltooid, klikt u in Jenkins Dashboard op de WebdriverTest project
Stap 14) Op de projectpagina van WebdriverTest worden de buildgeschiedenis en links naar de resultaten weergegeven, zoals weergegeven in de volgende schermafbeelding:
Stap 15) Klik op de link ‘Laatste testresultaat’ om de testresultaten te bekijken zoals weergegeven in de volgende schermafbeelding:
Stap 16). Selecteer een specifieke build en u ziet de huidige status door op “console-uitvoer'.
Jenkins plannen voor automatische uitvoering.
Builds plannen(Selenium Tests) is een van de belangrijke kenmerken van Jenkins waarbij de build automatisch wordt geactiveerd, 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 Schedule in, zoals weergegeven in de volgende schermafbeelding. Dit zal het buildproces elke dag om 11:XNUMX uur activeren
Jenkings gebruiken zonder Maven
Om een puur TestNg-script in Jenkins uit te voeren, voert u het volgende in build in
D:>java -cp “Padtolibmap\lib\*;Padtobinmap\bin” org.testng.TestNG testenng.xml
- Klik op de knop Opslaan.
- Opmerking: het daadwerkelijke pad van de map lib en bin moet de bovenstaande opdracht toevoegen.
- Na het opslaan van de opdracht zal Jenkins het project binnen een vooraf gedefinieerde tijd bouwen, en deze opdracht zal worden uitgevoerd met behulp van TestNG.
- Het resultaat wordt opgeslagen in een aangepast HTML-rapportbestand dat via e-mail kan worden verzonden met een Jenkin-configuratie
- De uitvoer van de code zal zijn
Voordelen van het gebruik van Jenkins
- Vroegtijdige probleemopsporing – Bug kan worden gedetecteerd in de vroege fase van de softwareontwikkeling
- Automatische integratie – geen afzonderlijke inspanning vereist om alle wijzigingen te integreren
- Installer – een inzetbaar systeem dat op elk ontwikkelingspunt beschikbaar is
- Records – gegevens over de bouw van onderdelen worden bijgehouden
- Ondersteuning en plug-ins: Een van de redenen voor Jenkins populariteit is de beschikbaarheid van grote community-ondersteuning. Ook zijn er veel kant-en-klare plug-ins beschikbaar die u helpen de functionaliteit uit te breiden.