Selenium Integracija s Mavenom i Jenkins

โšก Pametni saลพetak

Maven Jenkins Selenium integracija stvara automatizirani cjevovod kontinuiranog testiranja gdje Maven upravlja ovisnostima projekta i ลพivotnim ciklusom, Jenkins zakazuje i pokreฤ‡e izgradnje, i Selenium izvrลกava testove preglednika, stvarajuฤ‡i ponovljivu, pouzdanu i skalabilnu end-to-end web automatizaciju.

  • ???? Uloga Mavena: Maven 3.x upravlja ovisnostima, ลพivotnim ciklusom izgradnje i dodacima putem pom.xml datoteke, uklanjajuฤ‡i ruฤno rukovanje JAR-om za Selenium projektima.
  • ๐Ÿ” Jenkins Uloga: Jenkins Rasporedi LTS-a Selenium pakete, prati promjene SCM-a i pokreฤ‡e automatske regresijske radnje na svakom commitu ili noฤ‡nom cronu.
  • ๐Ÿš€ Snaga cjevovoda: Kombinirajuฤ‡i Maven, Jenkins, Seleniumi TestNG formira kompletnu CI/CD petlju koja hvata nedostatke unutar nekoliko minuta nakon promjene koda.
  • โœ… Izvjeลกฤ‡ivanje: Surefire izvjeลกฤ‡a plus Jenkins povijest izgradnje dati tracjednostavne, djeljive rezultate testiranja s konzolnim izlazom i HTML nadzornim ploฤama.
  • ๐Ÿงช Poboljลกanje umjetne inteligencije: Moderni AI dodaci daju prioritet pogoฤ‘enim testovima, predviฤ‘aju nestabilne sluฤajeve i smanjuju Jenkins ciklusi povratne informacije unutra Selenium cjevovodi.

Struฤnjak i Jenkins Integracija s Selenium

ล to je Jenkins in Selenium?

Jenkins je vodeฤ‡i alat za kontinuiranu integraciju otvorenog koda koji je izvorno razvio Hudsonov laboratorij. Viลกeplatformski je i radi na Windows, Linux, macOSi Solaris okruลพenja. Jenkins piลกe u Java i sada se distribuira kao Jenkins LTS za stabilnu produkcijsku upotrebu. Njegova glavna upotreba je praฤ‡enje bilo kojeg posla, ลกto moลพe biti SCM provjera, cron raspored ili bilo koje stanje aplikacije. Jenkins aktivira unaprijed konfigurirane akcije kada se odreฤ‘eni korak dogodi u poslovima.

Vaลพne znaฤajke Jenkins

  • Promjena podrลกke: Jenkins generira popis svih promjena napravljenih u repozitorijima kao ลกto su Git ili SVN.
  • Stalne veze: Jenkins pruลพa izravne poveznice na najnoviju ili posljednju neuspjelu verziju, ลกto pojednostavljuje komunikaciju tima.
  • Instalacija: Jenkins Jednostavno se instalira pomoฤ‡u izvornog instalacijskog programa, WAR datoteke rasporeฤ‘ene na aplikacijskom posluลพitelju ili Docker slike.
  • Integracija e-poลกte: Jenkins moลพe se konfigurirati za slanje sadrลพaja i statusa svake izrade putem e-poลกte.
  • Jednostavna konfiguracija: Konfiguriranje raznih zadataka na Jenkins je jednostavno putem web nadzorne ploฤe.
  • TestNG Test: Jenkins moลพe se konfigurirati za pokretanje automatiziranog testa na TestNG nakon svakog commita u repozitorij.
  • Viลกe VM-ova: Jenkins moลพe distribuirati izgradnje na viลกe agentskih raฤunala.
  • Izrada projekta: Jenkins dokumentira detalje JAR-ova, JAR verzija i karteping brojeva izrade artefakata.
  • dodaci: 3rd mogu se dodati dodaci za zabave Jenkins za proลกirenje znaฤajki i dodatne funkcionalnosti.

Zaลกto Jenkins i Selenium?

  • Trฤanje Selenium testovi u Jenkins omoguฤ‡uje vam izvrลกavanje testova svaki put kada se softver promijeni i implementaciju softvera u novo okruลพenje kada testovi proฤ‘u.
  • Jenkins moลพete zakazati svoj Selenium testovi koji se pokreฤ‡u u odreฤ‘eno vrijeme.
  • Moลพete spremiti povijest izvrลกavanja i izvjeลกฤ‡a o testiranju za traclakoฤ‡a.
  • Jenkins podrลพava Maven za izgradnju i Ispitivanje projekt u kontinuiranoj integraciji.

U ฤemu je Maven Selenium?

Maven je moฤ‡an alat za upravljanje projektima i izgradnjama temeljen na konceptu POM-a (Project Object Model) koji ukljuฤuje informacije o projektu i konfiguracijske podatke za Maven, kao ลกto su direktorij za izgradnju, izvorni direktorij, ovisnosti, direktorij za testni izvorni kod, ciljevi, dodaci i drugo. Maven 3.x je trenutna stabilna linija, ลกiroko koriลกtena u Selenium okviri za testiranje.

Zaลกto Maven i Jenkins

Selenium WebDriver je odliฤan za automatizaciju preglednika. Ali, kada se koristi za testiranje i izgradnju testnog okvira, moลพe se ฤiniti nedovoljno moฤ‡nim. Integracija Mavena s Selenium pruลพa sljedeฤ‡e pogodnosti.
Apache Maven pruลพa podrลกku za upravljanje punim ลพivotnim ciklusom testnog projekta.

  • Maven se koristi za definiranje strukture projekta, ovisnosti, izgradnju i upravljanje testiranjem.
  • Pomoฤ‡u pom.xml (Maven) moลพete konfigurirati ovisnosti potrebne za izgradnju, testiranje i pokretanje koda.
  • Maven automatski preuzima potrebne datoteke iz centralnog repozitorija tijekom izgradnje projekta.

Kako instalirati Maven i koristiti ga s TestNG Selenium

Evo su koraci za instalaciju Mavena i njegovo koriลกtenje s TestNG Selenium.

Za ovaj vodiฤ koristit ฤ‡emo Eclipse (Juno) IDE za Java Programeri za postavljanje Selenium Projekt WebDriver. Osim toga, moramo dodati dodatak m2eclipse u Eclipse kako bi se olakลกao proces izgradnje i stvorila datoteka pom.xml.
Dodajmo dodatak m2eclipse u Eclipse sa sljedeฤ‡im koracima:

Korak 1) In Eclipse IDE, odaberite Pomoฤ‡ | Instalirajte novi softver od Eclipse glavni izbornik.

Korak 2) U dijalogu za instalaciju unesite URL https://www.eclipse.org/m2e/. Odabrati Raditi sa i m2e dodatak kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 3) Kliknite na Sljedeฤ‡i gumb i dovrลกite instalaciju.

konfigurirati Eclipse s Mavenom

Nakon ลกto je m2e dodatak instaliran, sada moramo kreirati Maven projekt.

Korak 1) In Eclipse IDE, kreirajte novi projekt odabirom file | Novo | Ostalo od Eclipse Izbornik.

Korak 2) Na Novo dijaloลกki okvir, odaberite Maven | Projekt Maven i kliknite Dalje.

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 3) Na Novi projekt Maven odabir dijaloga Napravite jednostavan projekt i kliknite Dalje.

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 4) Unesite WebdriverTest ID grupe: i Id artefakta: i kliknite zavrลกi.

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 5) Eclipse ฤ‡e stvoriti WebdriverTest sa sljedeฤ‡om strukturom:

Instalirajte Maven i koristite ga s TestNG Seleniuml

Korak 6) Desnom tipkom miลกa kliknite Knjiลพnica JRE sustava I odaberite Nekretnine opciju iz izbornika.

Instalirajte Maven i koristite ga s TestNG Selenium

Na Svojstva za knjiลพnicu JRE sustava dijaloลกki okvir, provjerite Zadani JRE za radni prostor je odabrano i kliknite U redu.

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 7) odabrati pom.xml iz Istraลพivaฤ projekata.

Instalirajte Maven i koristite ga s TestNG Selenium

Datoteka pom.xml otvorit ฤ‡e se u odjeljku Editor.

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 8) Dodaj Selenium, Maven, TestNGi JUnit ovisnosti o pom.xml u ฤvor:

	<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>

Korak 9) Napravite novu TestNG Klasa. Unesite naziv paketa kao โ€žprimjerโ€œ i โ€žNoviTestโ€œ u Ime: tekstualni okvir i kliknite na zavrลกiti gumb kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 10) Eclipse ฤ‡e stvoriti klasu NewTest kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 11) Dodajte sljedeฤ‡i kod u NovoTest razred. Ovaj ฤ‡e kod provjeriti naslov Guru99 Selenium stranica.

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();			
		}		
}	

Korak 12) Desnom tipkom miลกa kliknite projekt WebdriverTest i odaberite TestNG | Pretvoriti u TestNG.
Eclipse ฤ‡e stvoriti testng.xml u kojem piลกe da trebate pokrenuti samo jedan test s nazivom NovoTest kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Instalirajte Maven i koristite ga s TestNG Selenium

Aลพurirajte projekt i provjerite da se datoteka pojavljuje u stablu Istraลพivaฤ paketa (desni klik na projekt โ€“ Osvjeลพi).

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 13) Sada morate provesti test kroz ovo testng.xml.

Dakle, idite na Pokreni konfiguracije i kreirajte novo pokretanje TestNG, odaberite projekt, postavite polje Apartman as testng.xmli kliknite Pokreni.

Instalirajte Maven i koristite ga s TestNG Selenium

Pobrinite se da izgradnja uspjeลกno zavrลกi.

Korak 14) Osim toga, moramo dodati

  1. maven-kompiler-plugin
  2. maven-surefire-plugin
  3. testng.xml

u pom.xml.

Maven-surefire-plugin se koristi za konfiguriranje i izvrลกavanje testova. Ovdje se dodatak koristi za konfiguriranje testing.xml datoteke za TestNG testirati i generirati izvjeลกฤ‡a o ispitivanju.

Dodatak maven-compiler-plugin koristi se za pomoฤ‡ pri kompajliranju koda i koriลกtenje odreฤ‘ene verzije JDK-a za kompajliranje. Dodajte sve ovisnosti iz sljedeฤ‡eg isjeฤka koda u pom.xml u ฤvor:

Instalirajte Maven i koristite ga s TestNG Selenium

Korak 15) Za pokretanje testova u Maven ลพivotnom ciklusu, desnom tipkom miลกa kliknite projekt WebdriverTest i odaberite Trฤati kao | Maven testMaven ฤ‡e izvrลกiti test iz projekta.

Instalirajte Maven i koristite ga s TestNG Selenium

Pobrinite se da izgradnja uspjeลกno zavrลกi.

Kako se integrirati Jenkins sa Selenium webdriver

Evo koraka za instalaciju Jenkins LTS i konfigurirajte ga za pokretanje Mavena s TestNG Selenium.

Montaลพa

Korak 1) Idi na https://www.jenkins.io/download/ i preuzmite ispravnu Jenkins LTS paket za vaลก OS. Instalirajte. Jenkins.

Integracija Jenkins Kontakt Selenium webdriver

Korak 2) Otvoriti rajsfeลกlus Jenkins u odreฤ‘enu mapu. Pokrenite exe datoteku kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Integracija Jenkins Kontakt Selenium webdriver

Korak 3) u Jenkins Postavljanje kliknite prozor Sljedeฤ‡i tipku.

Integracija Jenkins Kontakt Selenium webdriver

Korak 4) Kliknite na Instalirati gumb na kraju.

Integracija Jenkins Kontakt Selenium webdriver

Korak 5) Nakon ลกto je instalacija zavrลกena, idite na Jenkins Nadzorna ploฤa (zadano je http://localhost:8080) u prozoru preglednika.

Integracija Jenkins Kontakt Selenium webdriver

Korak 6) Kliknite na Nova stavka vezu za stvaranje CI posla.

Integracija Jenkins Kontakt Selenium webdriver

Korak 7) Odaberite radio gumb projekta Maven kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Integracija Jenkins Kontakt Selenium webdriver

Koriลกtenje Build a Projekt Maven opcija, Jenkins podrลพava izgradnju i testiranje Maven projekata.

Korak 8) Kliknite gumb U redu. U Jenkins Nadzorna ploฤa.

Integracija Jenkins Kontakt Selenium webdriver

Korak 9) Idi na upravljati Jenkins => Konfigurirajte sustav kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona.

Integracija Jenkins Kontakt Selenium webdriver

Kliknite JDK instalacije i konfigurirajte JDK kao na sljedeฤ‡oj snimci zaslona:

Integracija Jenkins Kontakt Selenium WebDrive

Korak 10) Idi na Izgradi dio novog posla.

  • u Korijen POM U tekstualno polje unesite punu putanju do datoteke pom.xml
  • U odjeljku Ciljevi i opcije unesite โ€žฤisti testโ€œ

Integracija Jenkins Kontakt Selenium webdriver

Korak 11) Kliknite na Korak po korak do prijave tipku.

Integracija Jenkins Kontakt Selenium webdriver

Korak 12) Na stranici projekta WebdriverTest kliknite na Izgradite sada link.

Integracija Jenkins Kontakt Selenium webdriver

Maven ฤ‡e izgraditi projekt. Tada ฤ‡e imati TestNG izvrลกite testne sluฤajeve.

Korak 13) Nakon ลกto je proces izgradnje zavrลกen, u Jenkins Kliknite na nadzornu ploฤu WebdriverTest Projekt.

Integracija Jenkins Kontakt Selenium webdriver

Korak 14) Stranica projekta WebdriverTest prikazuje povijest izrade i veze na rezultate kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Integracija Jenkins Kontakt Selenium webdriver

Korak 15) Kliknite vezu "Najnoviji rezultat testa" za prikaz rezultata testa kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona:

Integracija Jenkins Kontakt Selenium webdriver

Korak 16) Odaberite odreฤ‘enu verziju i vidjet ฤ‡ete trenutni status klikom na "konzolni izlaz".

Integracija Jenkins Kontakt Selenium webdriver

Zakazivanje Jenkins za automatsko izvrลกavanje

Zakazivanje izrada (Selenium testovi) jedna je od vaลพnih znaฤajki Jenkins, gdje automatski pokreฤ‡e izgradnju na temelju definiranih kriterija. Jenkins pruลพa viลกe naฤina za pokretanje procesa izgradnje u konfiguraciji Okidaฤa izgradnje.

Na primjer:
Unesite 0 23 * * * u tekstualni okvir Raspored kao ลกto je prikazano na sljedeฤ‡oj snimci zaslona. Ovo ฤ‡e pokrenuti proces izgradnje svaki dan u 11 sata

Jenkins za automatsko izvrลกavanje

Koriลกtenje Jenkins bez Mavena

Za pokretanje ฤistog TestNG skripta u Jenkins, unesite sljedeฤ‡e u build:

D:>java -cp โ€œPathtolibfolder\lib\*;Pathtobinfolder\binโ€ org.testng.TestNG testng.xml

Jenkins za automatsko izvrลกavanje

  • Kliknite na gumb Spremi.
  • Napomena: U gornjoj naredbi potrebno je dodati stvarnu putanju mapa lib i bin.
  • Nakon spremanja naredbe, Jenkins ฤ‡e izgraditi projekt u unaprijed definirano vrijeme, a ova naredba ฤ‡e se pokrenuti pomoฤ‡u TestNG.
  • Rezultat ฤ‡e biti pohranjen u prilagoฤ‘enoj HTML datoteci izvjeลกฤ‡a koja se moลพe poslati e-poลกtom pomoฤ‡u Jenkins konfiguracija.
  • Izlaz koda ฤ‡e biti:

Jenkins za automatsko izvrลกavanje

Prednosti koriลกtenja Jenkins

  1. Rano otkrivanje problema โ€“ greลกke se mogu otkriti u ranoj fazi razvoja softvera.
  2. Automatska integracija โ€“ nije potreban zaseban napor za integraciju svih promjena.
  3. Instalacijski program โ€“ sustav koji se moลพe primijeniti u bilo kojoj fazi razvoja.
  4. Zapisi โ€“ ฤuvaju se zapisi o proลกlim izgradnjama.
  5. Podrลกka i dodaci โ€“ jedan od razloga za JenkinsPopularnost je u dostupnosti velike podrลกke zajednice. Dostupno je i mnogo gotovih dodataka koji vam pomaลพu proลกiriti njegovu funkcionalnost.

Pitanja i odgovori

Maven upravlja ovisnostima i ลพivotnim ciklusom izgradnje, Selenium pokreฤ‡e preglednik i Jenkins orkestrira izvrลกenje. Zajedno tvore kompletan CI cjevovod koji kompajlira kod, preuzima potrebne JAR-ove, pokreฤ‡e Selenium testira i automatski objavljuje izvjeลกฤ‡a o svakom commitu.

Koristite Maven 3.x za upravljanje ovisnostima i izgradnjama, i Jenkins LTS za stabilnu kontinuiranu integraciju. Ove verzije pruลพaju dugoroฤnu podrลกku, sigurnosne zakrpe i ลกiroku kompatibilnost dodataka za Selenium WebDriver, TestNGi dodatke za izvjeลกtavanje Surefire.

Da. Jenkins koristi sintaksu u cron stilu u odjeljku Build Triggers za zakazivanje Selenium apartmani. Na primjer, 0 23 * * * vodi apartman svake veฤeri u 11 sata Jenkins takoฤ‘er moลพe pokrenuti gradnje na SCM anketiranju ili dogaฤ‘ajima webhook-a.

Na AI Jenkins Dodaci predviฤ‘aju nestabilne testove, automatski podeลกavaju agente za izgradnju i otkrivaju anomalije u zapisnicima konzole. Smanjuju ลกum u cjevovodu, ubrzavaju povratne informacije i predlaลพu optimalnu paralelizaciju, ลกto odrลพava Selenium apartmani pouzdani kako broj testova raste u tisuฤ‡ama.

Da. Analiza utjecaja testiranja temeljena na umjetnoj inteligenciji mapira promjene koda na pogoฤ‘ene Selenium scenarije i pokreฤ‡e samo relevantni podskup u JenkinsTo skraฤ‡uje cikluse povratnih informacija, smanjuje troลกkove infrastrukture i odrลพava potpunu pokrivenost zakazivanjem potpune regresije na noฤ‡nim izradama.

Saลพmite ovu objavu uz: