TestNG Dinleyiciler Selenium

โšก Akฤฑllฤฑ ร–zet

Dinleyiciler Selenium WebDriver'lar TestNG Test olaylarฤฑnฤฑ yakalayarak gรผnlรผkleri, raporlarฤฑ ve hata sonrasฤฑ eylemleri รถzelleลŸtirmek iรงin kullanฤฑlan arayรผzler. Bu makale, ITestListener yรถntemlerini aรงฤฑklamakta ve รงalฤฑลŸtฤฑrฤฑlabilir bir รถrneฤŸi adฤฑm adฤฑm gรถstermektedir. Java รถrnek olarak, nasฤฑl olduฤŸunu aรงฤฑklฤฑyor. Selenium 4 numaralฤฑ sรผrรผm, kullanฤฑmdan kaldฤฑrฤฑlan WebDriverEventListener'ฤฑn yerini aldฤฑ.

  • โ“ Dinleyicilerin Yaptฤฑklarฤฑ: Onlar abone oluyorlar TestNG BaลŸlatma, geรงme, baลŸarฤฑsฤฑz olma ve atlama gibi olaylar, gรผnlรผk kaydฤฑ veya raporlama kancalarฤฑnฤฑ รงalฤฑลŸtฤฑrmak iรงin kullanฤฑlฤฑr.
  • ๐Ÿงฉ On ฤฐki Arayรผz: TestNG Ayrฤฑntฤฑlฤฑ kontrol iรงin ITestListener, ISuiteListener, IReporter, IInvokedMethodListener ve IAnnotationTransformer gibi arayรผzler sunar.
  • ๏ธ ฤฐki Kablolama Modu: Tek bir sฤฑnฤฑfa @Listeners ek aรงฤฑklamasฤฑyla bir dinleyici ekleyin veya her test paketi iรงin testng.xml dosyasฤฑnda bir kez kaydedin.
  • ???? Selenium 4 Gรผncellemesi: EventFiringWebDriver kullanฤฑmdan kaldฤฑrฤฑlmฤฑลŸtฤฑr; modern WebDriverListener arayรผzรผ ve EventFiringDecorator artฤฑk WebDriver dรผzeyindeki olay kancalarฤฑnฤฑ desteklemektedir.
  • ๐Ÿค– Yapay Zeka Aรงฤฑsฤฑ: Yapay zekรข destekli dinleyiciler, arฤฑzalarฤฑ otomatik olarak sฤฑnฤฑflandฤฑrabilir, akฤฑllฤฑ ekran gรถrรผntรผleri ekleyebilir ve kararsฤฑz test sinyallerini gerรงek zamanlฤฑ olarak CI panolarฤฑna geri iletebilir.

TestNG Dinleyiciler Selenium

Selenium WebDriver komut dosyalarฤฑ genellikle baลŸarฤฑlฤฑ bir doฤŸrulama, baลŸarฤฑsฤฑz bir konum belirleyici veya atlanan bir adฤฑm gibi test olaylarฤฑna tepki vermeye ihtiyaรง duyar. Dinleyiciler bunu mรผmkรผn kฤฑlar. Genel olarak, Selenium Projeler iki dinleyici ailesine dayanฤฑyor:

  1. WebDriver Dinleyicileri
  2. TestNG Dinleyiciler

Bu eฤŸitimde, odaklanacaฤŸฤฑz TestNG Dinleyiciler, WebDriver dรผzeyindeki dinleyicilerin nasฤฑl deฤŸiลŸtiฤŸine dair bir notla birlikte. Selenium 4.x.

Dinleyici ne anlama gelir? TestNG?

Bir dinleyici, varsayฤฑlan davranฤฑลŸฤฑ deฤŸiลŸtiren bir arayรผzdรผr. TestNGAdฤฑndan da anlaลŸฤฑlacaฤŸฤฑ gibi, Dinleyiciler belirli bir baฤŸlamda tanฤฑmlanan olaylarฤฑ "dinlerler". Selenium Komut dosyasฤฑnฤฑ yazฤฑn ve buna gรถre tepki verin. Bunlarฤฑ, ilgili Listener arayรผzรผnรผ uygulayarak ve test sฤฑnฤฑfฤฑnฤฑza veya test paketinize kaydederek kullanฤฑrsฤฑnฤฑz. Listener'lar รถzelleลŸtirmenize olanak tanฤฑr. TestNG Raporlar oluลŸturun, ekran gรถrรผntรผleri ekleyin ve yapฤฑlandฤฑrฤฑlmฤฑลŸ gรผnlรผkler yayฤฑnlayฤฑn.

Dinleyici Tรผrleri TestNG

TestNG ลžirket, bir dizi dinleyici arayรผzรผ sunar ve bunlarฤฑn her biri test yaลŸam dรถngรผsรผnรผn farklฤฑ bir aลŸamasฤฑnฤฑ hedefler.

AลŸaฤŸฤฑda yaygฤฑn olarak kullanฤฑlanlar yer almaktadฤฑr. TestNG dinleyiciler:

  1. IEk AรงฤฑklamaTransformatรถrรผ
  2. IEk AรงฤฑklamaTransformer2
  3. Yapฤฑlandฤฑrฤฑlabilir
  4. IConfigurationListener
  5. IExecutionListener
  6. Kancalanabilir
  7. IInvokedMethodListener
  8. IInvokedMethodListener2
  9. IMethodInterceptor
  10. IR Muhabir
  11. ISuiteListener
  12. ITestListener

Bu arayรผzler ลŸu alanlarda kullanฤฑlฤฑr: Selenium gรผnlรผkler oluลŸturmak veya รถzelleลŸtirmek iรงin TestNG Raporlar. Bu eฤŸitimde, raporlarฤฑ nasฤฑl uygulayacaฤŸฤฑmฤฑzฤฑ รถฤŸreneceฤŸiz. ITestListener.

ITestListener AลŸaฤŸฤฑdaki yรถntemleri ortaya koymaktadฤฑr:

  • onStart โ€“ Herhangi bir test baลŸladฤฑฤŸฤฑnda รงaฤŸrฤฑlฤฑr.
  • onTestSuccess โ€“ Test baลŸarฤฑlฤฑ olduฤŸunda รงaฤŸrฤฑlฤฑr.
  • onTestFailure โ€“ Bir test baลŸarฤฑsฤฑz olduฤŸunda รงaฤŸrฤฑlฤฑr.
  • onTestSkipped โ€“ Bir test atlandฤฑฤŸฤฑnda รงaฤŸrฤฑlฤฑr.
  • onTestFailedButWithinSuccessPercentage โ€“ Testin baลŸarฤฑsฤฑz olduฤŸu ancak baลŸarฤฑ yรผzdesi iรงinde kaldฤฑฤŸฤฑ durumlarda รงaฤŸrฤฑlฤฑr.
  • onFinish โ€“ Sฤฑnฤฑftaki tรผm testler รงalฤฑลŸtฤฑrฤฑldฤฑktan sonra รงaฤŸrฤฑlฤฑr.

Test Senaryosu

Bu test senaryosunda, giriลŸ sรผrecini otomatikleลŸtirecek ve uygulayacaฤŸฤฑz. ITestListener Buna karลŸฤฑ.

  1. BaลŸlatmak Firefox ve siteyi aรง https://demo.guru99.com/V4/

Test Senaryosu GiriลŸi URL

  1. Uygulamaya giriลŸ yapฤฑn.

Test Senaryosu giriลŸ formu

OluลŸturma Adฤฑmlarฤฑ TestNG dinleyici

Yukarฤฑdaki test senaryosu iรงin, Listener'ฤฑ adฤฑm adฤฑm uygulayacaฤŸฤฑz.

) 1 Adฤฑm Bir sฤฑnฤฑf oluลŸturun. Dinleyici Testi uygular ITestListenerKฤฑrmฤฑzฤฑ alt รงizginin รผzerine gelin ve Eclipse AลŸaฤŸฤฑda gรถsterildiฤŸi gibi iki hฤฑzlฤฑ รงรถzรผm รถnereceฤŸiz:

Eclipse UygulanmamฤฑลŸ yรถntemleri eklemek iรงin hฤฑzlฤฑ dรผzeltme

"UygulanmamฤฑลŸ metotlar ekle" seรงeneฤŸine tฤฑklayฤฑn. Kodunuza, aลŸaฤŸฤฑdaki gibi birden fazla taslak metot (gรถvdesi olmadan) eklenir:

paket Dinleyici_Demo;

ithalat org.testng.ITestContext;
ithalat org.testng.ITestListener;
ithalat org.testng.ITestResult;

Kamusal sฤฑnฤฑf Dinleyici Testi uygular ITestListener {

@Override
Kamu geรงersiz onFinish(ITestContext arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}

@Override
Kamu geรงersiz onStart(ITestContext arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}

@Override
Kamu geรงersiz onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}

@Override
Kamu geรงersiz onTestFailure(ITestResult arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}

@Override
Kamu geรงersiz onTestSkipped(ITestResult arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}

@Override
Kamu geรงersiz onTestStart(ITestResult arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}

@Override
Kamu geรงersiz onTestSuccess(ITestResult arg0) {
// TODO Otomatik olarak oluลŸturulmuลŸ metot taslaฤŸฤฑ
}
}

ลžimdi bunu deฤŸiลŸtirelim. Dinleyici Testi Bu sฤฑnฤฑfta รถzellikle aลŸaฤŸฤฑdaki yรถntemleri dolduracaฤŸฤฑz: onTestFailure, onTestSkipped, onTestStart, ve onTestSuccess.

DeฤŸiลŸiklik basit: her yรถntem testin adฤฑnฤฑ yazdฤฑrฤฑyor, bรถylece konsol geรงme, kalma ve atlama durumunu aรงฤฑkรงa gรถsteriyor.

DeฤŸiลŸiklikten sonra kod ลŸu ลŸekilde gรถrรผnรผyor:

paket Dinleyici_Demo;

ithalat org.testng.ITestContext;
ithalat org.testng.ITestListener;
ithalat org.testng.ITestResult;

Kamusal sฤฑnฤฑf Dinleyici Testi uygular ITestListener {

@Override
Kamu geรงersiz onFinish(ITestContext Sonuรง) {
}

@Override
Kamu geรงersiz onStart(ITestContext Sonuรง) {
}

@Override
Kamu geรงersiz onTestFailedButWithinSuccessPercentage(ITestResult Sonuรง) {
}

// Bir test durumu baลŸarฤฑsฤฑz olduฤŸunda bu yรถntem รงaฤŸrฤฑlฤฑr.
@Override
Kamu geรงersiz onTestFailure(ITestResult Sonuรง) {
System.out.println("BaลŸarฤฑsฤฑz olan test senaryosunun adฤฑ ลŸudur: " + Result.getName());
}

// Bir test durumu atlandฤฑฤŸฤฑnda bu yรถntem รงaฤŸrฤฑlฤฑr.
@Override
Kamu geรงersiz onTestSkipped(ITestResult Sonuรง) {
System.out.println(Atlanan test senaryosunun adฤฑ ลŸudur: + Result.getName());
}

// Bir test senaryosu baลŸladฤฑฤŸฤฑnda bu metot รงaฤŸrฤฑlฤฑr.
@Override
Kamu geรงersiz onTestStart(ITestResult Sonuรง) {
System.out.println(Result.getName() + "Test senaryosu baลŸlatฤฑldฤฑ");
}

// Bir test baลŸarฤฑlฤฑ olduฤŸunda bu metot รงaฤŸrฤฑlฤฑr.
@Override
Kamu geรงersiz onTestSuccess(ITestResult Sonuรง) {
System.out.println("BaลŸarฤฑlฤฑ olan test senaryosunun adฤฑ ลŸudur: " + Result.getName());
}
}

) 2 Adฤฑm BaลŸka bir sฤฑnฤฑf oluลŸturun. Test Senaryolarฤฑ GiriลŸ otomasyonu iรงin. Selenium Bu sฤฑnฤฑf, demo sitesine giriลŸ yapmak iรงin รงalฤฑลŸtฤฑrฤฑlacaktฤฑr.

paket Dinleyici_Demo;

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.Listeners;
ithalat org.testng.annotations.Test;

Kamusal sฤฑnฤฑf Test Senaryolarฤฑ {
Web Sรผrรผcรผsรผ sรผrรผcรผ = yeni FirefoxSรผrรผcรผ();

// BaลŸarฤฑlฤฑ olup olmadฤฑฤŸฤฑnฤฑ doฤŸrulamak iรงin tasarlanmฤฑลŸ test.
@ร–lรงek
Kamu geรงersiz GiriลŸ yapmak() {
sรผrรผcรผ.al(โ€œhttps://demo.guru99.com/V4/โ€);
sรผrรผcรผ.findElement(By.name(โ€œuidโ€)).sendKeys(โ€œmngr34926โ€);
sรผrรผcรผ.findElement(By.name("Parola")).sendKeys(โ€œamUpenuโ€);
sรผrรผcรผ.findElement(By.name(โ€œbtnLoginโ€)).tฤฑklamak();
}

// BaลŸarฤฑsฤฑzlฤฑk dinleyicisini doฤŸrulamak iรงin test zorla baลŸarฤฑsฤฑz hale getirildi.
@ร–lรงek
Kamu geรงersiz TestToFail() {
System.out.println("Bu test yรถntemi baลŸarฤฑsฤฑz oluyor.");
DoฤŸru.doฤŸru(yanlฤฑลŸ);
}
}

) 3 Adฤฑm Ardฤฑndan, bu dinleyiciyi test sฤฑnฤฑfฤฑmฤฑza baฤŸlayฤฑn. Test SenaryolarฤฑBir sฤฑnฤฑfฤฑ bir dinleyici arayรผzรผne baฤŸlamanฤฑn iki yolu vardฤฑr.

ฤฐlk yol, @Dinleyiciler AลŸaฤŸฤฑda gรถsterildiฤŸi gibi aรงฤฑklama:

@Dinleyiciler(Dinleyici_Demo.DinleyiciTest.sฤฑnฤฑfฤฑ)

Bu aรงฤฑklamayฤฑ yukarฤฑya ekliyoruz. Test Senaryolarฤฑ Sฤฑnฤฑf. Sฤฑnฤฑf daha sonra ลŸu ลŸekilde gรถrรผnรผr:

paket Dinleyici_Demo;

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.Listeners;
ithalat org.testng.annotations.Test;

@Dinleyiciler(Dinleyici_Demo.DinleyiciTest.sฤฑnฤฑfฤฑ)
Kamusal sฤฑnฤฑf Test Senaryolarฤฑ {
Web Sรผrรผcรผsรผ sรผrรผcรผ = yeni FirefoxSรผrรผcรผ();

// BaลŸarฤฑlฤฑ olup olmadฤฑฤŸฤฑnฤฑ doฤŸrulamak iรงin testin geรงmesi gerekiyor.
@ร–lรงek
Kamu geรงersiz GiriลŸ yapmak() {
sรผrรผcรผ.al(โ€œhttps://demo.guru99.com/V4/โ€);
sรผrรผcรผ.findElement(By.name(โ€œuidโ€)).sendKeys(โ€œmngr34926โ€);
sรผrรผcรผ.findElement(By.name("Parola")).sendKeys(โ€œamUpenuโ€);
sรผrรผcรผ.findElement(By.name(โ€œbtnLoginโ€)).tฤฑklamak();
}

// BaลŸarฤฑsฤฑzlฤฑk dinleyicisini doฤŸrulamak iรงin test zorla baลŸarฤฑsฤฑz hale getirildi.
@ร–lรงek
Kamu geรงersiz TestToFail() {
System.out.println("Bu test yรถntemi baลŸarฤฑsฤฑz oluyor.");
DoฤŸru.doฤŸru(yanlฤฑลŸ);
}
}

Proje yapฤฑsฤฑ ลŸรถyle gรถrรผnรผr:

TestNG Dinleyici projesi yapฤฑsฤฑ

) 4 Adฤฑm Uygula Test Senaryolarฤฑ sฤฑnฤฑfฤฑn iรงindeki metotlar. Dinleyici Testi Bu yรถntemler, ek aรงฤฑklama ile belirtilen yรถntemlerin davranฤฑลŸฤฑna baฤŸlฤฑ olarak otomatik olarak รงaฤŸrฤฑlฤฑr. @ร–lรงek.

) 5 Adฤฑm Konsolda gรถrรผntรผlenen รงฤฑktฤฑyฤฑ doฤŸrulayฤฑn.

ร‡ฤฑktฤฑsฤฑ Test Senaryolarฤฑ gibi gรถrรผnรผyor:

TestNG Dinleyici konsol รงฤฑktฤฑsฤฑ

[TestNG] KoลŸma:
C:\Users\gauravn\AppData\Local\Temp\testng-eclipseโ€“1058076918\testng-customsuite.xml

GiriลŸ testi baลŸlatฤฑldฤฑ
BaลŸarฤฑlฤฑ olan test senaryosunun adฤฑ: GiriลŸ
TestToFail test senaryosu baลŸlatฤฑldฤฑ
Bu test yรถntemi baลŸarฤฑsฤฑz oldu.
BaลŸarฤฑsฤฑz olan test senaryosunun adฤฑ: TestToFail
BAลžARILI: GiriลŸ
BAลžARISIZ: TestToFail
java.lang.AssertionError: [true] bekleniyordu ancak [false] bulundu

Birden fazla sฤฑnฤฑf iรงin dinleyici kullanma

Bir projede รงok sayฤฑda test sฤฑnฤฑfฤฑ varsa, bunlara ekleme yapmak... @Dinleyiciler Her birine ayrฤฑ ayrฤฑ aรงฤฑklama eklemek zahmetli ve hataya aรงฤฑk hale gelir.

Bu durumda, bir tane oluลŸturun. testng.xml Dosyayฤฑ aรงฤฑn ve dinleyiciyi oraya bir kez kaydedin.

testng.xml dosyasฤฑndaki birden fazla sฤฑnฤฑf iรงin dinleyici etiketi

Bu dinleyici, sฤฑnฤฑf sayฤฑsฤฑndan baฤŸฤฑmsฤฑz olarak tรผm test paketine uygulanฤฑr. XML dosyasฤฑnฤฑ รงalฤฑลŸtฤฑrdฤฑฤŸฤฑnฤฑzda, dinleyici pakette tanฤฑmlanan her sฤฑnฤฑf iรงin tetiklenir ve aynฤฑ etiket iรงinde istediฤŸiniz sayฤฑda dinleyici sฤฑnฤฑfฤฑ zincirleyebilirsiniz.

WebDriverListener'da Selenium 4 ile Kullanฤฑmdan KaldฤฑrฤฑlmฤฑลŸ EventFiringWebDriver karลŸฤฑlaลŸtฤฑrmasฤฑ

Sรผre TestNG Test yaลŸam dรถngรผsรผ olaylarฤฑna tepki veren dinleyiciler, tฤฑklama, gezinme veya findElement รงaฤŸrฤฑsฤฑ gibi tarayฤฑcฤฑ sรผrรผcรผsรผ eylemlerine tepki veren WebDriver dinleyicileri de mevcuttur. Selenium 3. Tipik yaklaลŸฤฑm ลŸuydu: WebSรผrรผcรผOlayDinleyicisi arayรผz kablolu Olay TetiklemeWebSรผrรผcรผsรผฤฐkisi de kullanฤฑmdan kaldฤฑrฤฑlmฤฑลŸtฤฑr. Selenium 4.x.

Modern alternatifi ลŸudur: WebSรผrรผcรผDinleyicisi arayรผz ile birleลŸtirildi EtkinlikAteลŸlemeDekoratรถrรผ:

ithalat org.openqa.selenium.WebSรผrรผcรผsรผ;
ithalat org.openqa.selenium.chrome.ChromeDriver;
ithalat org.openqa.selenium.support.events.EventFiringDecorator;
ithalat org.openqa.selenium.support.events.WebDriverListener;

Kamusal sฤฑnฤฑf Gรผnlรผk Dinleyicisi uygular WebSรผrรผcรผDinleyicisi {
@Override
Kamu geรงersiz beforeGet(Web Sรผrรผcรผsรผ sรผrรผcรผ, Dize url) {
System.out.println(โ€œลžuraya yรถnlendiriliyorโ€ + url);
}
}

Web Sรผrรผcรผsรผ ham = yeni ChromeSรผrรผcรผsรผ();
Web Sรผrรผcรผsรผ sรผrรผcรผ = yeni EtkinlikAteลŸlemeDekoratรถrรผ<>(yeni LoggingListener()).decorate(raw);

Dekoratรถr, herhangi bir WebDriver, WebElement veya Alert'i sarmalayabilir; bu da eski olay tetiklemeli sarmalayฤฑcฤฑya gรถre daha esnektir. Kullanฤฑm WebSรผrรผcรผDinleyicisi tarayฤฑcฤฑ tarafฤฑ gรถzlemlenebilirliฤŸi iรงin ve TestNG ITestListener Sรผit dรผzeyinde raporlama iรงin.

Yapay Zeka Destekli Dinleyiciler: Daha Akฤฑllฤฑ Kayฤฑtlar ve Arฤฑza ร–nceliklendirmesi

Modern Selenium Ekipler, yapay zeka sinyallerini daha eyleme geรงirilebilir hale getirmek iรงin yapay zeka hizmetlerini dinleyicilerine giderek daha fazla entegre ediyor. onTestFailureYapay zeka destekli bir dinleyici, DOM anlฤฑk gรถrรผntรผsรผnรผ ve ekran gรถrรผntรผsรผnรผ yakalayabilir, bunlarฤฑ olasฤฑ kรถk neden kรผmesini dรถndรผren bir modele gรถnderebilir ve bir etiketi geri yazabilir. TestNG Rapor veya ReportPortal gibi bir araรง.

Yapay zekรข destekli yaygฤฑn kalฤฑplar ลŸunlardฤฑr:

  • Kararsฤฑz test tespiti: Dinleyiciler, baลŸarฤฑsฤฑzlฤฑk durumlarฤฑnฤฑ istikrarsฤฑz, รงevresel veya gerรงek bir gerileme olarak sฤฑnฤฑflandฤฑran bir modele geรงme/kalma zaman รงizelgelerini iletirler.
  • Akฤฑllฤฑ ekran gรถrรผntรผleri: Bilgisayar gรถrรผลŸรผ modelleri, kullanฤฑcฤฑ arayรผzรผ ekran gรถrรผntรผlerini kฤฑrpar, aรงฤฑklama ekler ve farklฤฑlฤฑklarฤฑnฤฑ gรถsterir; bรถylece inceleyenler tรผm sayfanฤฑn dรถkรผmรผ yerine yalnฤฑzca deฤŸiลŸen bรถlgeyi gรถrรผrler.
  • KendiliฤŸinden onarฤฑlan konum belirleyiciler: A WebSรผrรผcรผDinleyicisi kancalar รถnceร–ฤŸeyiBul ve birincil konum belirleyici hata verdiฤŸinde alternatif bir konum belirleyici รถnermesi iรงin bir yapay zeka yardฤฑmcฤฑsฤฑndan yardฤฑm ister. NoSuchElementException.
  • DoฤŸal dil รถzetleri: An IR Muhabir Uygulama, sonuรงlarฤฑ tek paragraflฤฑk bir รถzet รผreten bir LLM'ye aktarฤฑr.

Dinleyici katmanฤฑ, bu kancalarฤฑ eklemek iรงin en temiz yerdir รงรผnkรผ test mantฤฑฤŸฤฑnฤฑn dฤฑลŸฤฑnda kalฤฑr ve tรผm test paketine eลŸit ลŸekilde uygulanฤฑr.

ร–ZET

Dinleyicilerin gรผnlรผk oluลŸturmasฤฑ veya รถzelleลŸtirmesi gerekir TestNG raporlar Selenium WebDriver.

  • TestNG Birรงok dinleyici arayรผzรผ sunar; ilgilendiฤŸiniz etkinliฤŸe uygun olanฤฑ seรงin.
  • Dinleyiciler, kullanฤฑlan arayรผzlerdir. Selenium Test yaลŸam dรถngรผsรผ olaylarฤฑna tepki vermek iรงin WebDriver komut dosyalarฤฑ.
  • Bu eฤŸitim videosu ลŸunu gรถsterdi: ITestListener BaลŸarฤฑlฤฑ ve baลŸarฤฑsฤฑz olmak รผzere iki testle.
  • Bir dinleyiciyi ลŸu ลŸekilde ekleyebilirsiniz: @Dinleyiciler veya bir kez kaydedin testng.xml Tรผm sรผit iรงin.
  • Selenium 4.x, yerini alฤฑyor Olay TetiklemeWebSรผrรผcรผsรผ 'da WebSรผrรผcรผDinleyicisi + EtkinlikAteลŸlemeDekoratรถrรผ WebDriver dรผzeyindeki olaylar iรงin.

SSS

Bir dinleyici, bir iลŸlem sฤฑrasฤฑnda oluลŸturulan olaylara abone olan bir arayรผzdรผr. Selenium test sรผrรผลŸรผ. TestNG Dinleyiciler, baลŸlatma, geรงme, baลŸarฤฑsฤฑz olma ve atlama gibi test yaลŸam dรถngรผsรผ olaylarฤฑna tepki verir. WebDriver dinleyicileri ise tฤฑklamalar, gezinmeler ve findElement รงaฤŸrฤฑlarฤฑ gibi tarayฤฑcฤฑ sรผrรผcรผsรผ olaylarฤฑna tepki verir.

ITestListener, @Test metotlarฤฑ iรงin ayrฤฑ ayrฤฑ tetiklenir ve onTestStart, onTestSuccess, onTestFailure, onTestSkipped ve onFinish olaylarฤฑnฤฑ ortaya รงฤฑkarฤฑr. ISuiteListener ise her bir test paketi iรงin yalnฤฑzca iki kez, onStart ve onFinish olaylarฤฑyla tetiklenir; bu da onu rapor dosyasฤฑ aรงma gibi test paketi dรผzeyinde kurulumlar iรงin ideal hale getirir.

kayฤฑt olabilirsiniz TestNG Dinleyiciyi iki ลŸekilde ekleyebilirsiniz: test sฤฑnฤฑfฤฑnฤฑn รผstรผne @Listeners(MyListener.class) ek aรงฤฑklamasฤฑnฤฑ ekleyin veya bir dinleyici tanฤฑmlayฤฑn. testng.xml dosyasฤฑndaki etiket. XML yaklaลŸฤฑmฤฑ, kaynak kodunu deฤŸiลŸtirmeden dinleyiciyi test paketindeki her sฤฑnฤฑfa uygular.

EventFiringWebDriver ve WebDriverEventListener kullanฤฑmdan kaldฤฑrฤฑlmฤฑลŸtฤฑr. Selenium 4.x. ร–nerilen alternatif, WebDriver, WebElement veya Alert รถrneklerini sarmalayabilen ve beforeGet ve afterClick gibi daha temiz kanca noktalarฤฑ sunan EventFiringDecorator ile birleลŸtirilmiลŸ WebDriverListener arayรผzรผdรผr.

Test paketi tamamlandฤฑktan sonra HTML veya JSON รถzeti gibi รถzel bir rapor oluลŸturmak istediฤŸinizde IReporter'ฤฑ kullanฤฑn. @BeforeMethod ve @AfterMethod gibi yapฤฑlandฤฑrma yรถntemleri de dahil olmak รผzere her test yรถnteminden รถnce ve sonra bir kanca (hook) gerektiฤŸinde IInvokedMethodListener'ฤฑ kullanฤฑn.

Yapay zeka modelleri, her bir gรผnlรผk girdisini รถnem derecesiyle etiketleyerek, doฤŸal dil adฤฑm aรงฤฑklamalarฤฑ oluลŸturarak ve ilgili hatalarฤฑ kรผmeleyerek dinleyici รงฤฑktฤฑsฤฑnฤฑ zenginleลŸtirebilir. onTestFailure iรงinde, bir yapay zeka servisi ekran gรถrรผntรผsรผnรผ ve yฤฑฤŸฤฑn izini analiz edebilir. trace, ardฤฑndan olasฤฑ temel nedeni buna baฤŸlayฤฑn. TestNG rapor.

Evet. Bir dinleyici, baลŸarฤฑsฤฑzlฤฑk durumunu istikrarsฤฑz, รงevresel veya gerรงek bir gerileme olarak sฤฑnฤฑflandฤฑran bir yapay zeka servisine geรงme/kalma geรงmiลŸini aktarabilir. Karar, bir hata olarak geri yazฤฑlฤฑr. TestNG Bu รถzellik sayesinde, kontrol panelleri her kฤฑrmฤฑzฤฑ hata veren derlemeyi insan incelemesine gerek kalmadan, kararsฤฑz testleri izole edebilir.

Bu yazฤฑyฤฑ ลŸu ลŸekilde รถzetleyin: