Maven ve Jenkins Entegrasyonu Selenium Klavuz
Jenkins ne durumda? Selenium?
Jenkins, Hudson laboratuvarฤฑ tarafฤฑndan geliลtirilen lider aรงฤฑk kaynaklฤฑ sรผrekli entegrasyon aracฤฑdฤฑr. รapraz platformdur ve kullanฤฑlabilir Windows, Linux, Mac OS ve Solaris ortamlar. Jenkins ลรถyle yazฤฑlmฤฑลtฤฑr: Java. Jenkin'in baลlฤฑca kullanฤฑmฤฑ, SVN รถdemesi, cron veya herhangi bir uygulama durumu olabilecek herhangi bir iลi izlemektir. ฤฐลlerde belirli bir adฤฑm oluลtuฤunda รถnceden yapฤฑlandฤฑrฤฑlmฤฑล eylemleri baลlatฤฑr.
Jenkins'in รnemli รzellikleri
- Desteฤi Deฤiลtir: Jenkins, SVN gibi depolarda yapฤฑlan tรผm deฤiลikliklerin listesini oluลturur.
- Kalฤฑcฤฑ baฤlantฤฑlar: Jenkins, kolay iletiลim iรงin kullanฤฑlabilecek en son yapฤฑya veya baลarฤฑsฤฑz yapฤฑya doฤrudan baฤlantฤฑlar saฤlar
- Kurulum: Jenkins'in kurulumu, uygulama sunucusunu kullanarak daฤฤฑtmak iรงin doฤrudan kurulum dosyasฤฑ (exe) veya savaล dosyasฤฑ kullanฤฑlarak kolaydฤฑr.
- E-posta entegrasyonu: Jenkins, derlemenin durumunun iรงeriฤini e-postayla gรถnderecek ลekilde yapฤฑlandฤฑrฤฑlabilir.
- Kolay Yapฤฑlandฤฑrma: Jenkins'te รงeลitli gรถrevleri yapฤฑlandฤฑrmak kolaydฤฑr.
- TestNG รlรงek: Jenkins, otomasyon testi yapฤฑsฤฑnฤฑ รงalฤฑลtฤฑracak ลekilde yapฤฑlandฤฑrฤฑlabilir Test her SVN derlemesinden sonra.
- Birden รงok VM: Jenkins, yapฤฑyฤฑ birden fazla makineye daฤฤฑtacak ลekilde yapฤฑlandฤฑrฤฑlabilir.
- Proje yapฤฑsฤฑ: Jenkins, jar'ฤฑn ayrฤฑntฤฑlarฤฑnฤฑ, jar sรผrรผmรผnรผ ve yapฤฑ ve jar numaralarฤฑnฤฑn eลleลtirilmesini belgelendiriyor.
- Eklentiler: 3rd parti eklentisi, รถzellikleri ve ek iลlevleri kullanacak ลekilde Jenkins'te yapฤฑlandฤฑrฤฑlabilir.
Neden Jenkins ve Selenium?
- Koลu Selenium Jenkins'teki testler, yazฤฑlฤฑmฤฑnฤฑz her deฤiลtiฤinde testlerinizi รงalฤฑลtฤฑrmanฤฑza ve testler baลarฤฑlฤฑ olduฤunda yazฤฑlฤฑmฤฑ yeni bir ortama daฤฤฑtmanฤฑza olanak tanฤฑr.
- Jenkins, testlerinizi belirli bir zamanda รงalฤฑลacak ลekilde planlayabilir.
- Yรผrรผtme geรงmiลini ve Test Raporlarฤฑnฤฑ kaydedebilirsiniz.
- Jenkins, Maven'i geliลtirme ve geliลtirme konusunda destekliyor Test yapmak sรผrekli entegrasyon halindeki bir proje.
Maven nedir? Selenium?
Maven, Maven iรงin inลaat dizini, kaynak dizini, baฤฤฑmlฤฑlฤฑk, test kaynaฤฤฑ dizini, Hedefler, eklentiler vb. gibi proje bilgilerini ve yapฤฑlandฤฑrma bilgilerini iรงeren POM (Proje Nesne Modeli) konseptini temel alan gรผรงlรผ bir proje / yapฤฑ yรถnetimi aracฤฑdฤฑr. .
Neden Maven ve Jenkins
Selenium WebDriver tarayฤฑcฤฑ otomasyonu iรงin mรผkemmeldir. Ancak bunu test etmek ve bir test รงerรงevesi oluลturmak iรงin kullanฤฑrken, yetersiz hissediyor. Maven'i entegre etmek Selenium Aลaฤฤฑdaki faydalarฤฑ saฤlar
Apache Maven Bir test projesinin tรผm yaลam dรถngรผsรผnรผ yรถnetmeye yรถnelik destek saฤlar.
- Maven proje yapฤฑsฤฑnฤฑ, baฤฤฑmlฤฑlฤฑklarฤฑ, derleme ve test yรถnetimini tanฤฑmlamak iรงin kullanฤฑlฤฑr.
- Pom.xml(Maven) kullanarak test oluลturmak ve kod รงalฤฑลtฤฑrmak iรงin gereken baฤฤฑmlฤฑlฤฑklarฤฑ yapฤฑlandฤฑrabilirsiniz.
- Maven, projeyi oluลtururken gerekli dosyalarฤฑ depodan otomatik olarak indirir.
Maven nasฤฑl kurulur ve birlikte kullanฤฑlฤฑr? TestNG Selenium
ฤฐลte Maven'i kurma ve kullanma adฤฑmlarฤฑ: TestNG Selenium
Bu eฤitim iรงin kullanacaฤฤฑmฤฑz Eclipse (Juno) IDE'si Java Geliลtiricilerin kurulumu Selenium WebDriver Projesi. Ek olarak, m2eclipse eklentisini eklememiz gerekiyor Eclipse derleme sรผrecini kolaylaลtฤฑrmak ve pom.xml dosyasฤฑnฤฑ oluลturmak iรงin.
M2Eclipse eklentisini ekleyelim Eclipse Aลaฤฤฑdaki adฤฑmlarla:
) 1 Adฤฑm In Eclipse IDE'yi seรงin Destek | Yeni Yazฤฑlฤฑm Yรผkle itibaren Eclipse Ana menรผ.
) 2 Adฤฑm Kurulum iletiลim kutusunda URL'yi girin https://www.eclipse.org/m2e/. seรงmek รalฤฑลmak ve m2e eklentisi aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibidir:
) 3 Adฤฑm Tฤฑklayฤฑn Sonraki dรผฤmesine basฤฑn ve kurulumu bitirin.
yapฤฑlandฤฑrma Eclipse Maven ile
M2e eklentisi kurulduฤunda artฤฑk Maven projesi oluลturmamฤฑz gerekiyor.
) 1 Adฤฑm In Eclipse IDE'yi seรงerek yeni bir proje oluลturun fileto | Yeni | Diฤer itibaren Eclipse menรผsรผ.
) 2 Adฤฑm รzerinde Yeni iletiลim kutusunu seรงin Maven | Maven Projesi ve ฤฐleri'ye tฤฑklayฤฑn
) 3 Adฤฑm รzerinde Yeni Maven Projesi iletiลim kutusunu seรงin Basit bir proje oluลturun ve ฤฐleri'ye tฤฑklayฤฑn
) 4 Adฤฑm WebdriverTest'i girin Grup kimliฤi: Ve Yapฤฑ Kimliฤi: ve bitir'i tฤฑklayฤฑn
) 5 Adฤฑm Eclipse oluลturacak Web Sรผrรผcรผsรผ Testi Aลaฤฤฑdaki yapฤฑ ile:
) 6 Adฤฑm Saฤ tฤฑklayฤฑn JRE Sistem Kitaplฤฑฤฤฑ Seรงin ve Emlaklar menรผden seรงenek.
รzerinde JRE Sistem Kitaplฤฑฤฤฑ รzellikleri iletiลim kutusu, emin olun รalฤฑลma alanฤฑ varsayฤฑlan JRE seรงilir ve Tamam'a tฤฑklayฤฑn
) 7 Adฤฑm. Seรงmek pom.xml itibaren Proje Gezgini..
pom.xml dosyasฤฑ Editรถr bรถlรผmรผnde aรงฤฑlacaktฤฑr
) 8 Adฤฑm Eklemek Selenium, Uzman, TestNG, haziran pom.xml dosyasฤฑna olan baฤฤฑmlฤฑlฤฑklar dรผฤรผm:
<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>
) 9 Adฤฑm Yeni bir tane oluลtur TestNG Sฤฑnฤฑf. Paket adฤฑnฤฑ โรถrnekโ ve โYeniTestโ olarak girin. ฤฐsim: metin kutusuna tฤฑklayฤฑn ve Bitiล Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi dรผฤmeye tฤฑklayฤฑn:
) 10 Adฤฑm. Eclipse Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi NewTest sฤฑnฤฑfฤฑnฤฑ oluลturacaktฤฑr:
) 11 Adฤฑm Aลaฤฤฑdaki kodu ekleyin YeniTest sฤฑnฤฑf:
Bu kod Guru99 unvanฤฑnฤฑ doฤrulayacak Selenium Sayfa
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();
}
}
) 12 Adฤฑm WebdriverTest'e saฤ tฤฑklayฤฑn ve seรงin TestNG | E dรถnรผลmek TestNG.
Eclipse adฤฑ ile yalnฤฑzca bir test รงalฤฑลtฤฑrmanฤฑz gerektiฤini sรถyleyen testng.xml dosyasฤฑnฤฑ oluลturacaktฤฑr. YeniTest Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถrรผldรผฤรผ gibi:
Projeyi gรผncelleyin ve dosyanฤฑn aฤaรงta gรถrรผndรผฤรผnden emin olun Paket Gezgini (projeye saฤ tฤฑklayฤฑn โ Yenile).
) 13 Adฤฑm ลimdi bunun รผzerinden test yapmanฤฑz gerekiyor testng.xml.
รyleyse ลuraya git: Yapฤฑlandฤฑrmalarฤฑ รalฤฑลtฤฑr ve yeni bir lansman oluลtur TestNG, projeyi ve alanฤฑ seรงin sรผit as testng.xml ve รalฤฑลtฤฑr'a tฤฑklayฤฑn
Derlemenin baลarฤฑyla tamamlandฤฑฤฤฑndan emin olun.
) 14 Adฤฑm. Ek olarak ลunu eklememiz gerekiyor
- maven-derleyici-eklentisi
- maven-surefire-eklentisi
- testng.xml
pom.xml'e.
Maven-surefire-eklentisi testleri yapฤฑlandฤฑrmak ve yรผrรผtmek iรงin kullanฤฑlฤฑr. Burada eklenti, test.xml dosyasฤฑnฤฑ yapฤฑlandฤฑrmak iรงin kullanฤฑlฤฑr. TestNG test edin ve test raporlarฤฑ oluลturun.
maven-compiler-plugin, kodun derlenmesine ve derleme iรงin belirli JDK sรผrรผmรผnรผn kullanฤฑlmasฤฑna yardฤฑmcฤฑ olmak iรงin kullanฤฑlฤฑr. Aลaฤฤฑdaki kod parรงasฤฑndaki tรผm baฤฤฑmlฤฑlฤฑklarฤฑ pom.xml'e ekleyin dรผฤรผm:
) 15 Adฤฑm รalฤฑลtฤฑrmak iรงine Maven yaลam dรถngรผsรผndeki testler iรงin WebdriverTest'e saฤ tฤฑklayฤฑn ve Olarak รงalฤฑลtฤฑrmak | Maven testi. Maven projeden test yรผrรผtecek.
Derlemenin baลarฤฑyla tamamlandฤฑฤฤฑndan emin olun.
Jenkins'in Entegrasyonu Nasฤฑl Yapฤฑlฤฑr? Selenium Web Sรผrรผcรผsรผ
Jenkins'i kurmak ve TestNg ile Maven'ฤฑ รงalฤฑลtฤฑrmak รผzere yapฤฑlandฤฑrmak iรงin adฤฑmlar ลunlardฤฑr Selenium
Montaj
) 1 Adฤฑm MyCAD'de yazฤฑlฤฑm Gรผncelleme ye git http://jenkins-ci.org/ ve iลletim sisteminiz iรงin doฤru paketi indirin. Jenkins'i yรผkleyin.
) 2 Adฤฑm Jenkins'i belirtilen klasรถre aรงฤฑn. Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi exe dosyasฤฑnฤฑ รงalฤฑลtฤฑrฤฑn:
) 3 Adฤฑm In Jenkins 1.607 Kurulumu pencereye tฤฑklayฤฑn Sonraki dรผฤmesine basฤฑn.
) 4 Adฤฑm Tฤฑklayฤฑn kurmak sonunda dรผฤmesine basฤฑn.
) 5 Adฤฑm Kurulum tamamlandฤฑktan sonra tarayฤฑcฤฑ penceresinde Jenkins Dashboard'a (varsayฤฑlan olarak http://localhost:8080) gidin.
) 6 Adฤฑm Tฤฑkla Yeni รฤe CI iลi oluลturma baฤlantฤฑsฤฑ.
) 7 Adฤฑm Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi Maven projesi radyo dรผฤmesini seรงin:
Build a'yฤฑ kullanma Maven Projesi Jenkins, Maven projelerinin oluลturulmasฤฑnฤฑ ve test edilmesini destekler.
) 8 Adฤฑm Tamam dรผฤmesine tฤฑklayฤฑn. Jenkins Dashboard'da "WebdriverTest" adฤฑnda yeni bir iล oluลturuldu.
) 9 Adฤฑm MyCAD'de yazฤฑlฤฑm Gรผncelleme ye git Jenkins'i yรถnetin => Sistemi Yapฤฑlandฤฑr aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi.
JDK kurulumlarฤฑna tฤฑklayฤฑn ve JDK'yฤฑ aลaฤฤฑdaki ekran gรถrรผntรผsรผndeki gibi yapฤฑlandฤฑrฤฑn:
) 10 Adฤฑm Git ฤฐnลa etmek yeni iล bรถlรผmรผ.
- iรงinde Kรถk POM metin kutusu, pom.xml'e tam yolu girin
- Hedefler ve seรงenekler bรถlรผmรผne "temiz test" girin
) 11 Adฤฑm Tฤฑklayฤฑn Uygula dรผฤmesine basฤฑn.
) 12 Adฤฑm WebdriverTest proje sayfasฤฑnda, ลimdi Oluลtur baฤlantฤฑ.
Maven projeyi inลa edecek. Daha sonra sahip olacak TestNG test senaryolarฤฑnฤฑ yรผrรผtรผn.
) 13 Adฤฑm Oluลturma iลlemi tamamlandฤฑktan sonra Jenkins Dashboard'da Web Sรผrรผcรผsรผ Testi proje
) 14 Adฤฑm WebdriverTest proje sayfasฤฑ, aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi derleme geรงmiลini ve sonuรงlara giden baฤlantฤฑlarฤฑ gรถrรผntรผler:
) 15 Adฤฑm Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi test sonuรงlarฤฑnฤฑ gรถrรผntรผlemek iรงin โSon Test Sonucuโ baฤlantฤฑsฤฑna tฤฑklayฤฑn:
) 16 Adฤฑm. Belirli bir yapฤฑyฤฑ seรงin; โ รผzerine tฤฑklayarak mevcut durumu gรถreceksiniz.konsol รงฤฑkฤฑลฤฑ".
Jenkins'i otomatik yรผrรผtme iรงin zamanlama.
Derlemeleri zamanlama (Selenium Testler), tanฤฑmlanmฤฑล kriterlere gรถre derlemeyi otomatik olarak tetiklediฤi Jenkins'in รถnemli รถzelliklerinden biridir. Jenkins, Derleme Tetikleyici yapฤฑlandฤฑrmasฤฑ altฤฑnda derleme sรผrecini tetiklemek iรงin birden fazla yol sunar.
รrneฤin:
Aลaฤฤฑdaki ekran gรถrรผntรผsรผnde gรถsterildiฤi gibi Schedule metin kutusuna 0 23 * * * girin. Bu, her gรผn saat 11:XNUMX'te derleme sรผrecini tetikleyecektir.
Jenkings'i Maven olmadan kullanmak
Jenkins'te saf TestNg betiฤini รงalฤฑลtฤฑrmak iรงin build'e aลaฤฤฑdakileri girin
D:>java -cp โPathtolibfolder\lib\*;Pathtobinfolder\binโ org.testng.TestNG testng.xml
- Kaydet dรผฤmesine tฤฑklayฤฑn.
- Not: Lib ve bin klasรถrรผnรผn gerรงek yolunun yukarฤฑdaki komuta eklenmesi gerekir.
- Komutu kaydettikten sonra Jenkins, รถnceden tanฤฑmlanan sรผrede projeyi oluลturacak ve bu komut kullanฤฑlarak รงalฤฑลtฤฑrฤฑlacaktฤฑr. TestNG.
- Sonuรง, Jenkin yapฤฑlandฤฑrmasฤฑyla e-posta yoluyla gรถnderilebilen รถzel bir rapor HTML dosyasฤฑnda saklanacaktฤฑr
- Kodun รงฤฑktฤฑsฤฑ ลu ลekilde olacaktฤฑr:
Jenkins'i kullanmanฤฑn faydalarฤฑ
- Erken sorun bulma โ Hata, yazฤฑlฤฑm geliลtirmenin erken aลamasฤฑnda tespit edilebilir
- Otomatik entegrasyon โ tรผm deฤiลiklikleri entegre etmek iรงin ayrฤฑ bir รงabaya gerek yoktur
- Yรผkleyici โ herhangi bir geliลtirme noktasฤฑnda kullanฤฑlabilen konuลlandฤฑrฤฑlabilir bir sistem
- Kayฤฑtlar โ parรงa yapฤฑm kayฤฑtlarฤฑ tutulur
- Destek ve Eklentiler: Jenkin'in popรผlaritesinin nedenlerinden biri geniล topluluk desteฤinin mevcut olmasฤฑdฤฑr. Ayrฤฑca, iลlevselliฤini geniลletmenize yardฤฑmcฤฑ olacak birรงok hazฤฑr eklenti mevcuttur.




































