Gruplar TestNG
โก Akฤฑllฤฑ รzet
Gruplar TestNG Bu yaklaลฤฑm, test yรถntemlerini mantฤฑksal etiketlerle etiketlemenize ve ardฤฑndan bunlarฤฑ bir XML paketi aracฤฑlฤฑฤฤฑyla dahil etmenize veya hariรง tutmanฤฑza olanak tanฤฑr. Bu yรถntem, yeniden yazmaya gerek kalmadan temel testler, regresyon testleri ve baฤฤฑmlฤฑlฤฑk odaklฤฑ testleri basitleลtirir. Java kodu.

TestNG Bu, birim, fonksiyonel, uรงtan uca, kullanฤฑcฤฑ arayรผzรผ ve entegrasyon testlerini kapsayan bir test รงerรงevesidir. Java projeleri.
XML paketi oluลturarak ve Maven aracฤฑlฤฑฤฤฑyla tetikleyerek tek bir paketi veya birden fazla paketi (bir paket, tanฤฑmlanmฤฑล bir dizin dรผzeninde ilgili sฤฑnฤฑflarฤฑ kapsar) รงalฤฑลtฤฑrabilirsiniz.
TestNG รrnekli Gruplar
Gruplarฤฑ ลu ลekilde kullanฤฑrsฤฑnฤฑz: TestNG ne zaman:
- Test yรถntemlerini yalnฤฑzca iลlevsel alana gรถre birรงok sฤฑnฤฑfa daฤฤฑtmak istemezsiniz ve
- Seรงilen test durumlarฤฑnฤฑ, kod tabanฤฑnda yokmuล gibi atlamak (รงalฤฑลtฤฑrmamak) istiyorsunuz.
- Bu iki amaca ulaลmak iรงin yรถntemleri mantฤฑksal gruplara ayฤฑrฤฑrsฤฑnฤฑz. TestNG Ardฤฑndan XML paketinde belirtilen "dahil et" ve "hariรง tut" filtrelerini dikkate alฤฑr.
Aลaฤฤฑdaki kod parรงasฤฑ, bir test yรถnteminde kullanฤฑlan grup etiketleme sรถzdizimini gรถstermektedir.
Burada iki grup adฤฑ kullanฤฑlฤฑyor, bunlar ลunlardฤฑr: bonding hem de strong_tiesBunlar, projenize uygun ลekilde yeniden adlandฤฑrabileceฤiniz mantฤฑksal etiketlerdir.
MKS <groups> Bu etiket, XML paketi iรงindeki grup filtrelerinin baลlangฤฑcฤฑnฤฑ iลaretler.
Ardฤฑndan, etiketlenmiล sฤฑnฤฑflardan seรงilen bir grubu belirlemek iรงin XML'i รถzelleลtirirsiniz. Aลaฤฤฑdaki รถrnek, grup bildirim sรถzdizimini gรถstermektedir.
<koลmak>
<dahil isim=โbaฤ kurmaโ />
</koลmak>
</gruplar>
Tek bir sฤฑnฤฑfฤฑn 10 test metodu iรงerdiฤini varsayalฤฑm.
Bu yรถntemlerden bazฤฑlarฤฑ ลunlardฤฑr:
- 6 yรถntem taลฤฑr
bondinggrup ve - 4 yรถntem taลฤฑr
strong_tiesgrup.
Ardฤฑndan Maven'ฤฑ kurarsฤฑnฤฑz ve Java yollar ve kullanฤฑm Eclipse IDE, XML dosyalarฤฑ iรงinde grup kullanฤฑmฤฑnฤฑ gรถstermek iรงin kullanฤฑlฤฑr. JavaMaven tabanlฤฑ proje.
ลunun iรงin XML oluลtur: TestNG Etiketlerle
- Maven รงerรงevesindeki XML (Geniลletilebilir ฤฐลaretleme Dili) dosyasฤฑ, bir veya daha fazla testin yapฤฑlandฤฑrmasฤฑnฤฑ saklar ve bu yapฤฑlandฤฑrma, testin iรงinde tanฤฑmlanฤฑr. etiketi.
- Her test girdisi bir zarfฤฑn iรงine alฤฑnmฤฑลtฤฑr. etiket ve bir veya daha fazla etiket tutabilir. TestNG sฤฑnฤฑflar.
- A Java bir veya daha fazla sฤฑnฤฑf @รlรงek Yรถntemlerine iliลkin aรงฤฑklamalar ลu ลekilde ele alฤฑnฤฑr: TestNG sฤฑnฤฑf.
รalฤฑลฤฑr durumda bir testng.xml dosyasฤฑ oluลturmak iรงin birden fazla etiket sฤฑrayla gรถrรผnรผr, bunlar ลunlardฤฑr: , , Ve .
- MKS Bu etiket, kullanฤฑlan sรผit dรผzeyindeki adฤฑ iรงerir. TestNG Yรผrรผtme รถzetlerine iliลkin raporlar.
- MKS <test name=โGuru 99 Duman Testi Gรถsterimi> `tag` mantฤฑksal bir test adฤฑ iรงerir; rapor bunu geรงme, kalma ve atlama sayฤฑlarฤฑ, toplam yรผrรผtme sรผresi ve grup meta verileri iรงin kullanฤฑr.
- MKS etiket, test sฤฑnฤฑfฤฑnฤฑ iลaret eder;
com.group.guru99paket veTC_Class1Bu, sฤฑnฤฑf adฤฑdฤฑr.
<!DOCTYPE sรผit SฤฐSTEM โhttp://testng.org/testng-1.0.dtdโ>
<sรผit isim=โSรผitโ>
<test isim="Guru 99 Duman Testi Gรถsterimiโ>
<gruplar>
<koลmak>
<dahil isim=โgรผรงlรผ_baฤlarโ />
</koลmak>
</gruplar>
<sฤฑnฤฑflar>
<sฤฑnฤฑf isim=โcom.group.guru99.TC_Class1โ />
</sฤฑnฤฑflar>
</test>
</sรผit>
Bu XML yapฤฑlandฤฑrmasฤฑna, sonraki bรถlรผmlerdeki video anlatฤฑmlarฤฑnda atฤฑfta bulunulacaktฤฑr.
Test XML'inde "hariรง tut" veya "dahil et"
Eฤer gruplama mekanizmasฤฑ kรผรงรผk bir filtre iรงin aฤฤฑr geliyorsa, testng.xml paketi ayrฤฑca tek tek test yรถntemlerini isimlerine gรถre hariรง tutmanฤฑza veya dahil etmenize olanak tanฤฑr.
Etiketi Dahil Et: Dahil etme etiketi iรงin sรถzdizimidahil isim=โ${TEST_CASE_NAME}โ />
Not: Tek bir รงalฤฑลtฤฑrmada birรงok test senaryosunu dahil edebilir veya hariรง tutabilirsiniz ve aynฤฑ sรถzdizimi grup filtreleri iรงin de geรงerlidir.
Sฤฑralฤฑ Yรผrรผtme iรงin dependsOnGroups Kullanฤฑmฤฑ
Sadece kapsayฤฑcฤฑ olmanฤฑn รถtesinde, TestNG Bir grubun diฤerine baฤฤฑmlฤฑ olmasฤฑna izin verir. dependsOnGroups Bu รถzellik, รงalฤฑลtฤฑrฤฑcฤฑnฤฑn, baฤฤฑmlฤฑ herhangi bir yรถntem baลlamadan รถnce รผst gruptaki her yรถntemin tamamlanmasฤฑnฤฑ saฤlayarak รถn koลullarฤฑn gรผvenilirliฤini korumasฤฑnฤฑ garanti eder.
- รnce giriล yapฤฑn, sonra iลlemleri gerรงekleลtirin: Etiket giriล yรถntemleri ile
group = "auth"ve etiket aktarฤฑm testleri iledependsOnGroups = {"auth"}Aktarฤฑm testleri yalnฤฑzca oturum aรงma iลlemi baลarฤฑlฤฑ olduktan sonra รงalฤฑลtฤฑrฤฑlฤฑr. - Baลarฤฑsฤฑzlฤฑk durumunda atla: รst gruptaki bir yรถntem baลarฤฑsฤฑz olursa, TestNG Baฤฤฑmlฤฑ yรถntemleri doฤrudan baลarฤฑsฤฑz saymak yerine atlanmฤฑล olarak iลaretler, bu da raporlarฤฑn doฤruluฤunu saฤlar.
- alwaysRun ile birlikte kullanฤฑn: Temizleme yรถntemleri ลu ลekilde ayarlanmalฤฑdฤฑr:
alwaysRun = trueDolayฤฑsฤฑyla, yukarฤฑ akฤฑล grubunda bir hata oluลsa bile, sonlandฤฑrma iลlemi รงalฤฑลmaya devam eder.
Bu model, API kurulumunun kullanฤฑcฤฑ arayรผzรผ doฤrulama iลlemleri baลlamadan รถnce tamamlanmasฤฑ gereken uรงtan uca test paketlerinde yaygฤฑndฤฑr.
koลmak TestNG Kodu gruplandฤฑrma, dahil etme, hariรง tutma (video demosu)
Aลaฤฤฑda adฤฑm adฤฑm bir aรงฤฑklama bulunmaktadฤฑr. Java kod ve XML paketini รงalฤฑลtฤฑran gruplandฤฑrmak, hariรง tutmak ve dahil etmek davranฤฑลฤฑ.
Test Senaryosu: Baลlatฤฑn Guru99 demo bankacฤฑlฤฑk sitesinde, giriล sayfasฤฑnda birkaรง รถฤeyi doฤrulayฤฑn, kimlik bilgilerinizi girin ve giriล yaptฤฑktan sonra kontrol panelinde birkaรง รถฤeyi tekrar doฤrulayฤฑn.
Not: Her adฤฑm kendi metodunda yer alฤฑr, ancak รงalฤฑลma zamanฤฑnda sฤฑra, XML paketindeki girdilere baฤlฤฑdฤฑr.
- Yรถntem 1: Tarayฤฑcฤฑyฤฑ baลlatฤฑn ve รงalฤฑลtฤฑrฤฑn. URL (
tc01LaunchURL()). - Yรถntem 2: Giriล sayfasฤฑnฤฑn baลlฤฑฤฤฑnฤฑ doฤrulayฤฑn (
tc02VerifyLaunchPage()). - Yรถntem 3: Giriล formuna kullanฤฑcฤฑ adฤฑnฤฑzฤฑ ve ลifrenizi girin (
tc03EnterCredentials()). - Yรถntem 4: Kullanฤฑcฤฑ kontrol panelinde Yรถnetici Kimliฤinin mevcut olduฤunu doฤrulayฤฑn (
tc04VerifyLoggedInPage()). - Yรถntem 5: Kullanฤฑcฤฑ kontrol panelindeki ek baฤlantฤฑlarฤฑ doฤrulayฤฑn (
tc05VerifyHyperlinks()).
Code Bu senaryo iรงin:
ithalat java.util.concurrent.TimeUnit;
ithalat org.openqa.selenium.Yazan;
ithalat org.openqa.selenium.WebSรผrรผcรผsรผ;
ithalat org.openqa.selenium.firefox.FirefoxSรผrรผcรผ;
ithalat org.testng.Assert;
ithalat org.testng.annotations.Test;
Kamusal sฤฑnฤฑf TC_Sฤฑnฤฑf1 {
public static final Web Sรผrรผcรผsรผ webDriver = yeni FirefoxSรผrรผcรผ();
dizi baลlatmaSayfasฤฑBaลlฤฑฤฤฑ = โ//h3[text()='Guru99 Bank']โ;
son dizi userName_element = โ//input[@name='uid']โ, parola_รถฤesi = โ//input[@name='password']โ,
iลaret_elemanฤฑ = โ//input[@name='btnLogin']โ;
son dizi userName_value = โmngr28642โ, parola_deฤeri = โydAnateโ;
son dizi yรถneticiID = โ//td[contains(text(),'Manger Id')]โ;
son dizi yeniMรผลteri = โ//a[@href='addcustomerpage.php']โ, fonTransferi = โ//a[@href='FundTransInput.php']โ;
/** Bu test senaryosu webDriver'ฤฑ baลlatฤฑr */
@รlรงek(gruplar = { โbaฤ kurmaโ, โgรผรงlรผ_baฤlarโ })
Kamu geรงersiz tc01BaลlatURL() {
webDriver.manage().window().maximize();
webDriver.manage().timeouts().implicitlyWait(20, ZamanBirimi.SANฤฐYE);
webDriver.get(โhttps://www.demo.guru99.com/V4/โ);
}
/** Giriล sayfasฤฑnda baลlฤฑฤฤฑn varlฤฑฤฤฑnฤฑ kontrol eder */
@รlรงek(gruplar = { โbaฤ kurmaโ })
Kamu geรงersiz tc02VerifyLaunchPage() {
Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(),
"Anasayfa baลlฤฑฤฤฑ gรถrรผntรผlenmiyor.");
System.out.println("Ana Sayfa baลlฤฑฤฤฑ gรถrรผntรผleniyor");
}
/** Kullanฤฑcฤฑ adฤฑnฤฑ ve ลifreyi girer, ardฤฑndan Oturum Aรง'a tฤฑklar */
@รlรงek(gruplar = { โbaฤ kurmaโ, โgรผรงlรผ_baฤlarโ })
Kamu geรงersiz tc03Kimlik Bilgilerini Girin() {
webDriver.findElement(By.xpath(userName_element)).sendKeys(userName_value);
webDriver.findElement(By.xpath(password_element)).sendKeys(password_value);
webDriver.findElement(By.xpath(signIn_element)).click();
}
/** Kontrol panelindeki yรถnetici kimliฤini doฤrular */
@รlรงek(gruplar = { โgรผรงlรผ_baฤlarโ })
Kamu geรงersiz tc04VerifyLoggedInPage() {
Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(),
โYรถnetici kimlik etiketi gรถrรผntรผlenmiyorโ);
System.out.println(โYรถnetici Kimlik etiketi gรถrรผntรผleniyorโ);
}
/** Kontrol panelinde Yeni mรผลteri baฤlantฤฑsฤฑnฤฑ ve Para Transferi baฤlantฤฑsฤฑnฤฑ kontrol eder */
@รlรงek(gruplar = { โbaฤ kurmaโ })
Kamu geรงersiz tc05HiperbaฤlantฤฑlarฤฑDoฤrula() {
Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(),
โYeni mรผลteri baฤlantฤฑsฤฑ gรถrรผntรผlenmiyorโ);
System.out.println(โYeni mรผลteri baฤlantฤฑsฤฑ gรถrรผntรผleniyorโ);
Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(),
"Para Transferi baฤlantฤฑsฤฑ gรถrรผntรผlenmiyor.");
System.out.println("Para Transferi baฤlantฤฑsฤฑ gรถrรผntรผleniyor");
}
}
Lรผtfen dikkat: demo bankacฤฑlฤฑk kimlik bilgileri yaklaลฤฑk 20 gรผn boyunca geรงerlidir, bu nedenle bu sรผre dolduktan sonra yerel bir รงalฤฑลtฤฑrma geรงersiz kimlik bilgileri hatasฤฑ gรถsterebilir.
Kodun aรงฤฑklamasฤฑ:
Beล test yรถntemi, her iลlem iรงin bir tane, her biri bir groups รถzniteliฤi @Test Ek aรงฤฑklama.
ฤฐki mantฤฑksal grup etiketi ลunlardฤฑr: strong_ties hem de bonding.
- Birinci ve รผรงรผncรผ yรถntemler her ikisini de taลฤฑr.
bondinghem destrong_tiesBu nedenle, gruplardan herhangi biri pakete dahil edildiฤinde รงalฤฑลฤฑrlar. Bu, paylaลฤฑmlฤฑ uygulamalar iรงin yaygฤฑn bir modeldir. test durumu adฤฑm. - ฤฐkinci yรถntem yalnฤฑzca ลu etiketle iลaretlenmiลtir:
bondingBu nedenle yalnฤฑzca ลu durumlarda รงalฤฑลฤฑr:bondingGrup dahil edilmiลtir. - Dรถrdรผncรผ yรถntem yalnฤฑzca ลu etiketle iลaretlenmiลtir:
strong_tiesDolayฤฑsฤฑyla, yalnฤฑzca o grup dahil edildiฤinde รงalฤฑลฤฑr. - Beลinci yรถntem yalnฤฑzca ลu etiketle iลaretlenmiลtir:
bondingBu nedenle yalnฤฑzca ลu durumlarda รงalฤฑลฤฑr:bondingGrup dahil edilmiลtir.
Aลaฤฤฑda dรถrt uygulama senaryosu yer almaktadฤฑr:
Senaryo 1: Grup ayrฤฑmฤฑ gรถzetmeksizin her test yรถntemini รงalฤฑลtฤฑrฤฑn. Kaldฤฑrฤฑn <groups> รalฤฑลmakta olan XML dosyasฤฑndan gelen bloฤu kaldฤฑrฤฑn.
Senaryo 2: Yalnฤฑzca seรงilen gruba baฤlฤฑ yรถntemleri รงalฤฑลtฤฑrฤฑn, yani strong_ties or bondingLรผtfen aลaฤฤฑdaki videoya bakฤฑn.
- Videonun ilk bรถlรผmรผnde,
<groups>Bu kod bloฤu yorum satฤฑrฤฑ haline getirildiฤi iรงin her test metodu รงalฤฑลฤฑyor. - ฤฐkinci bรถlรผmde, grup filtresi geri yรผklenir ve yalnฤฑzca eลleลen yรถntemler รงalฤฑลtฤฑrฤฑlฤฑr.
Senaryo 3: Seรงilen test durumlarฤฑnฤฑ atlamak iรงin hariรง tutma filtresini uygulayฤฑn. Lรผtfen videoyu izleyin.
- Demoda ลunlar hariรง tutulmuลtur:
tc02รalฤฑลan XML dosyasฤฑndaki isme gรถre arama yapฤฑldฤฑฤฤฑnda, sonuรง raporu hariรง tutulan yรถntemin รงalฤฑลmadฤฑฤฤฑnฤฑ doฤrular.
Senaryo 4: Yalnฤฑzca รงalฤฑลtฤฑrmak iรงin dahil et filtresini uygulayฤฑn. tc01LaunchURL, tc03EnterCredentials, ve tc05VerifyHyperlinksLรผtfen videoyu izleyin.
Bu รงalฤฑลtฤฑrmada, yalnฤฑzca include filtresinde listelenen yรถntemler, tam olarak yapฤฑlandฤฑrฤฑldฤฑฤฤฑ gibi yรผrรผtรผlecektir.
Aลaฤฤฑdaki baฤlantฤฑdan รถrnek projeyi indirin.
Sonuรง
Gruplar TestNG bรผyรผk รถlรงekli yapฤฑlara dรผzen getirmek Selenium ve birim paketlerini, tek seferlik sฤฑnฤฑf bรถlmelerini bildirimsel XML filtreleriyle deฤiลtirerek iyileลtirir.
Yรถntemlerinizi ลu etiketlerle etiketleyin: @Test(groups = {...}), sonra kullan <include>, <exclude>, ve dependsOnGroups Aynฤฑ Maven projesinden duman testi, regresyon testi ve uรงtan uca รงalฤฑลtฤฑrmalarฤฑ gerรงekleลtirmek iรงin TestNG 7.x.

