TestNG Poradnik

โšก Inteligentne podsumowanie

TestNG jest nastฤ™pnฤ… generacjฤ… Java framework testowy, ktรณry ล‚ฤ…czy siฤ™ z Selenium do ustrukturyzowanej automatyzacji, rozbudowanego raportowania i rรณwnolegล‚ego wykonywania. Ten samouczek obejmuje podstawowe adnotacje, konfiguracjฤ™ projektu w Eclipse, pisanie pierwszego przypadku testowego, raportรณw HTML i zaawansowane wykorzystanie parametrรณw.

  • ๐Ÿงฑ Podstawowe ramy: TestNG rozciฤ…ga siฤ™ JUnit pomysล‚y z adnotacjami, grupypingi rรณwnolegล‚e wykonywanie testรณw Selenium apartamenty.
  • ๐Ÿท๏ธ Adnotacje sterujฤ… przepล‚ywem: @Test, @BeforeMethod, @AfterMethod, @BeforeTest i @AfterTest โ€” konfiguracja, testowanie i demontaลผ.
  • ๐Ÿ—‚๏ธ. Eclipse Konfiguracja: Budowaฤ‡ TestNG projekt, dodaj TestNG biblioteka i Selenium Pliki JAR, a nastฤ™pnie wygeneruj klasy testowe za pomocฤ… kreatora.
  • ๐Ÿ“Š Raportowanie: TestNG tworzy raporty tekstowe, graficzne i HTML w folderze test-output, ล‚ฤ…cznie z widokami chronologicznymi.
  • โš™๏ธ Parametry: Uลผyj priority, alwaysRun i dataProvider, aby kontrolowaฤ‡ kolejnoล›ฤ‡ wykonywania i przesyล‚aฤ‡ dane do testรณw.
  • ๐Ÿค– Wzmocnienie AI: Asystenci kodowania AI przyspieszajฤ… TestNG generowanie klas, aktualizacje lokalizatorรณw i tworzenie szkieletu dataProvider.

TestNG Poradnik

Czym jest TestNG?

TestNG jest platformฤ… do automatyzacji testรณw, gdzie โ€žNGโ€ oznacza โ€žNext Generationโ€ (Nastฤ™pna Generacja). TestNG jest inspirowany JUnit i wykorzystuje Java adnotacje (@) do kontrolowania przepล‚ywu testรณw. To przezwyciฤ™ลผa JUnitwczeล›niejsze ograniczenia i jest zaprojektowany tak, aby testy end-to-end ล‚atwiejsze.

Z TestNG Moลผesz wygenerowaฤ‡ odpowiedni raport i natychmiast zobaczyฤ‡, ile testรณw zostaล‚o zaliczonych, niezaliczonych lub pominiฤ™tych. Moลผesz rรณwnieลผ ponownie uruchomiฤ‡ tylko te przypadki, ktรณre zakoล„czyล‚y siฤ™ niepowodzeniem.

Na przykล‚ad:

  • Zaล‚รณลผmy, ลผe masz piฤ™ฤ‡ przypadkรณw testowych, kaลผdy w swojej wล‚asnej metodzie, napisanych bez TestNG. Trzy przejล›cia; czwarte koล„czy siฤ™ niepowodzeniem. Po poprawieniu czwartego, chcesz ponownie uruchomiฤ‡ tylko ten jeden, poniewaลผ pierwsze trzy juลผ przeszล‚y. Trudno to zrobiฤ‡ za pomocฤ… zwykล‚ego kodu metody main().
  • TestNG zapewnia testng-failed.xml Plik w test-output folder. Uruchomienie tego pliku XML powoduje ponowne wykonanie tylko tych przypadkรณw, w ktรณrych wystฤ…piล‚ bล‚ฤ…d.

Poza tym poznasz zalety TestNG, jak pisaฤ‡ metody testowe z adnotacjami @Test i jak konwertowaฤ‡ klasy na zestaw testรณw, ktรณry bฤ™dzie uruchamiany z Eclipse lub wiersza poleceล„.

Dlaczego warto korzystaฤ‡ TestNG w Selenium?

Domyล›lnie Selenium testy nie dajฤ… ล‚adnie sformatowanych wynikรณw. TestNG Po podล‚ฤ…czeniu moduล‚ uruchamiajฤ…cy testy generuje ustrukturyzowany raport, ktรณrym moลผesz podzieliฤ‡ siฤ™ z zespoล‚em.

Wiฤ™kszoล›ฤ‡ Selenium uลผytkownicy wolฤ… TestNG koniec JUnit ze wzglฤ™du na szerszy zestaw funkcji. Kluczowe funkcje dla Selenium naleลผฤ…:

  • Raporty zawierajฤ…ce liczbฤ™ przypadkรณw testowych uruchomionych, zaliczonych, niezaliczonych i pominiฤ™tych.
  • ลatwa grupaping przypadkรณw testowych za poล›rednictwem testng.xml plik z priorytetami wykonania.
  • Powtarzaj test wielokrotnie bez uลผycia pฤ™tli invocationCount.
  • Przeprowadลบ wiele testรณw w wielu przeglฤ…darkach โ€” miฤ™dzy przeglฤ…darkamitestowanie przeglฤ…darki Wsparcie.
  • Pล‚ynna integracja z Maven, Jenkinsi innych narzฤ™dzi CI.
  • Readable adnotacje โ€” na przykล‚ad @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest.
  • Selenium WebDriver nie ma wbudowanego moduล‚u raportowania; TestNG wypeล‚nia tฤ™ lukฤ™ czystym raportem HTML, takim jak ten poniลผej.

TestNG Przykล‚ad raportu HTML dla Selenium Testy

  • TestNG Upraszcza kod testowy. Nie potrzebujesz juลผ statycznej metody main; adnotacje decydujฤ…, co i kiedy zostanie uruchomione.

Zwykล‚y Java struktura klasy testowej z metodฤ… gล‚รณwnฤ…

TestNG struktura klasy testowej z wykorzystaniem adnotacji

  • Nieprzechwycone wyjฤ…tki sฤ… obsล‚ugiwane z gracjฤ… przez TestNGSฤ… one zgล‚aszane jako nieudane kroki bez przerywania caล‚ego przebiegu.

Zalety TestNG koniec JUnit

TestNG oferuje trzy gล‚รณwne zalety w porรณwnaniu JUnit:

  • Adnotacje sฤ… ล‚atwiejsze do zrozumienia i uลผycia.
  • Przypadki testowe moลผna grupowaฤ‡ i ustalaฤ‡ priorytety przy mniejszym wysiล‚ku.
  • Rรณwnolegล‚e wykonywanie testรณw jest obsล‚ugiwane domyล›lnie.

Czym jest adnotacja w TestNG?

Adnotacje w TestNG sฤ… to wiersze kodu umieszczone nad metodฤ…, kontrolujฤ…ce sposรณb jej wykonania. Zawsze zaczynajฤ… siฤ™ od symbolu @. Poniลผej znajduje siฤ™ prosty przykล‚ad.

Przykล‚ad TestNG adnotacja powyลผej Java metoda

Adnotacje omรณwiono szczegรณล‚owo w sekcji โ€žAdnotacje uลผywane w TestNG" pรณลบniej w tym samouczku, wiฤ™c powyลผszy przykล‚ad ma jedynie na celu ustalenie oczekiwaล„. TestNG adnotacje sฤ… ล‚atwiejsze do kodowania i czytania niลผ JUnit odpowiedniki i sฤ… one niezbฤ™dne podczas przeprowadzania testรณw na Selenium Krata gdzie rรณwnolegล‚e wykonywanie zadaล„ ma znaczenie.

Jak pisaฤ‡ przypadki testowe w TestNG

Pisanie TestNG przypadek testowy skล‚ada siฤ™ z trzech krokรณw:

  1. Napisz swojฤ… logikฤ™ biznesowฤ… i umieล›ฤ‡ jฤ… TestNG adnotacje nad kaลผdฤ… metodฤ….
  2. Dodaj metadane, takie jak nazwa klasy, nazwa grupy i nazwa pakietu.
  3. Uruchom TestNG klasฤ™ ze swojego IDE lub wiersza poleceล„.

Utwรณrz przypadek testowy za pomocฤ… TestNG Adnotacje

Teraz utworzymy nasz pierwszy przypadek testowy, uลผywajฤ…c TestNG adnotacje w Selenium. Przed napisaniem testu skonfiguruj nowy TestNG projekt w Eclipse i nazwij to Imiฤ™TestNGProjekt.

Konfigurowanie nowego TestNG Projekt

Krok 1) Kliknij Plik > Nowy > Java Projekt.

Eclipse menu, aby utworzyฤ‡ nowy Java projekt

Krok 2) Wchodzฤ™ Imiฤ™TestNGProjekt jako nazwฤ™ projektu i kliknij Nastฤ™pna.

Nowoล›ci Java kreator projektu o nazwie FirstTestNGProjekt

Krok 3) Importuj TestNG biblioteki. Kliknij biblioteki kartฤ™, a nastฤ™pnie Dodaj bibliotekฤ™โ€ฆ.

Karta Biblioteki z opcjฤ… Dodaj bibliotekฤ™ Eclipse

Krok 4) W Dodaj bibliotekฤ™ dialog, wybierz TestNG i kliknij Nastฤ™pna.

Wybรณr TestNG w oknie dialogowym Dodaj bibliotekฤ™

Krok 5) Kliknij Zakoล„czyฤ‡.

Zakoล„czenie dziaล‚ania kreatora dodawania biblioteki

TestNG powinien teraz pojawiฤ‡ siฤ™ na liล›cie bibliotek.

TestNG widoczne na liล›cie bibliotek

Krok 6) Dodaj pliki JAR zawierajฤ…ce Selenium API. Pochodzฤ… one z Java sterownik klienta pobrany z selenium.dev/downloads.

Dodaj okno dialogowe zewnฤ™trznych plikรณw JAR w Eclipse

Przejdลบ do folderu, w ktรณrym znajduje siฤ™ Selenium Pliki JAR sฤ… przechowywane.

Wybรณr Selenium Pliki JAR dla ล›cieลผki kompilacji

Po dodaniu zewnฤ™trznych plikรณw JAR ekran powinien wyglฤ…daฤ‡ nastฤ™pujฤ…co.

Selenium Pliki JAR dodane do listy bibliotek

Krok 7) Kliknij Zakoล„czyฤ‡. Nowy Imiฤ™TestNGProjekt pojawia siฤ™ w Eksploratorze pakietรณw.

Imiฤ™TestNGProjekt widoczny w Eksploratorze pakietรณw

Jak stworzyฤ‡ nowy TestNG Plik testowy

Po przygotowaniu projektu utwรณrz nowy TestNG plik.

Krok 1) Kliknij prawym przyciskiem myszy src folder i wybierz Nowe > Inneโ€ฆ.

Nowe inne menu z folderu src w Eclipse

Krok 2) rozwiล„ TestNG wybierz folder TestNG klasai kliknij Nastฤ™pna.

TestNG opcja klasy w kreatorze Nowego

Krok 3) Wprowadลบ wartoล›ci pokazane poniลผej i kliknij Zakoล„czyฤ‡, Java plik ma nazwฤ™ Imiฤ™TestNGfilet.

TestNG czarodziej klasy z pierwszฤ…TestNGWartoล›ci pliku

Krok 4) Eclipse generuje TestNG szablon pokazany poniลผej.

generowane TestNG szablon klasy w Eclipse redaktor

Kodowanie Twojego pierwszego TestNG Przypadek testowy

Utwรณrz pierwszy walizka testowa ktรณry weryfikuje tytuล‚ Mercury Strona gล‚รณwna wycieczek.

package firsttestngpackage;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

public class FirstTestNGFile {

    public String baseUrl = "https://demo.guru99.com/test/newtours/";
    public WebDriver driver;

    @Test
    public void verifyHomepageTitle() {
        System.out.println("launching firefox browser");
        // Selenium 4 ships Selenium Manager, so the driver path is no longer required.
        driver = new FirefoxDriver();
        driver.get(baseUrl);
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);
        driver.quit();
    }
}

Rzeczy, na ktรณre naleลผy zwrรณciฤ‡ uwagฤ™:

  • TestNG nie potrzebuje main() Metoda.
  • Metody nie muszฤ… byฤ‡ statyczne.
  • @Test znaki adnotacji verifyHomepageTitle() jako przypadek testowy.
  • Adnotacje sฤ… dostฤ™pne na ลผywo org.testng.annotations.* pakiet.
  • Twierdziฤ‡ klasa od org.testng.Assert napฤ™dza weryfikacje.

W jednej adnotacji @Test moลผe znajdowaฤ‡ siฤ™ wiele adnotacji @Test TestNG Plik. Omรณwimy to w โ€žAdnotacje uลผywane w TestNG"

Uruchamianie testu

Kliknij plik prawym przyciskiem myszy i uruchom go jako TestNG test. Eclipse generuje dwa wyniki โ€” wynik tekstowy w oknie konsoli i wynik graficzny w TestNG Okno wynikรณw.

TestNG Okno wynikรณw z wynikiem testu

Eclipse Okno konsoli z TestNG wyjล›cie tekstowe

Sprawdzanie raportรณw utworzonych przez TestNG

Okno konsoli zapewnia podsumowanie w formie tekstowej, podczas gdy TestNG Okno wynikรณw wyล›wietla widok graficzny.

Tekst kontra grafika TestNG porรณwnanie wynikรณw

Generowanie raportรณw HTML

TestNG moลผe rรณwnieลผ generowaฤ‡ peล‚ne raporty HTML.

Krok 1) Po bieganiu Imiฤ™TestNGfilet, kliknij prawym przyciskiem myszy projekt i wybierz Odล›wieลผ kod.

Opcja odล›wieลผania dla TestNG projekt w Eclipse

Krok 2) A wyjล›cie testowe Pojawi siฤ™ folder. Rozwiล„ go i znajdลบ index.html โ€” raport HTML dla ostatniego uruchomienia.

folder test-output z wyrรณลผnionym plikiem index.html

Krok 3) Double-Kliknij index.html otworzyฤ‡ to w ล›rodku EclipsePrzeglฤ…darka. Naciล›nij klawisz F5, aby odล›wieลผyฤ‡ po kolejnych uruchomieniach.

TestNG Raport indeksu HTML wyrenderowany w Eclipse

Adnotacje uลผywane w TestNG

Adnotacjฤ™ @Test juลผ widziaล‚eล›. W dalszej czฤ™ล›ci tej sekcji omรณwiono najbardziej przydatne, zaawansowane adnotacje.

Wiele przypadkรณw testowych

Pojedynczy TestNG Plik moลผe zawieraฤ‡ wiele adnotacji @Test. Domyล›lnie metody z adnotacjฤ… @Test sฤ… wykonywane w kolejnoล›ci alfabetycznej. W poniลผszym kodzie metody c_test, a_test, b_test wyล›wietlane alfabetycznie, niezaleลผnie od kolejnoล›ci podanej w ลบrรณdle.

Wiele metod @Test w jednym TestNG klasa

Uruchom kod i otwรณrz index.html. Kliknij Widok chronologiczny.

Chronologiczny widok wielu TestNG metody

Parametry

Aby zastฤ…piฤ‡ domyล›lnฤ… kolejnoล›ฤ‡, uลผyj priority parametr. Parametry to sล‚owa kluczowe, ktรณre modyfikujฤ… zachowanie adnotacji.

  • Przypisz wartoล›ฤ‡ za pomocฤ… =.
  • Parametry naleลผy umieล›ciฤ‡ w nawiasach umieszczonych bezpoล›rednio za adnotacjฤ…, jak pokazano poniลผej.

TestNG adnotacja ze skล‚adniฤ… parametrรณw i wartoล›ci

TestNG Wykonuje adnotacje @Test od najniลผszej wartoล›ci priorytetu do najwyลผszej. Numery priorytetรณw nie muszฤ… nastฤ™powaฤ‡ po sobie.

Peล‚ny kod z parametrami priorytetu @Test

Raport HTML potwierdza, ลผe โ€‹โ€‹metody sฤ… wykonywane w kolejnoล›ci rosnฤ…cej wedล‚ug priorytetu.

TestNG raport pokazujฤ…cy metody uruchamiane wedล‚ug rosnฤ…cego priorytetu

Wiele parametrรณw

Oprรณcz priority, @Test akceptuje alwaysRun parametr (prawda lub faล‚sz). Aby uลผyฤ‡ dwรณch lub wiฤ™cej parametrรณw w jednej adnotacji, rozdziel je przecinkiem:

@Test(priority = 0, alwaysRun = true)

Przykล‚ad wielu parametrรณw wewnฤ…trz adnotacji @Test

@PrzedTestem i @PoTestie

@Przed testem Metody w ramach tej adnotacji przed pierwszym przypadkiem testowym w TestNG filet.
@PoTest Metody w ramach tej adnotacji po wszystkich przypadkach testowych w TestNG wykoล„czenie pliku.

Rozwaลผ poniลผszy kod.

package firsttestngpackage;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.*;

public class FirstTestNGFile {

    public String baseUrl = "https://demo.guru99.com/test/newtours/";
    public WebDriver driver;

    @BeforeTest
    public void launchBrowser() {
        System.out.println("launching firefox browser");
        driver = new FirefoxDriver();
        driver.get(baseUrl);
    }

    @Test
    public void verifyHomepageTitle() {
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);
    }

    @AfterTest
    public void terminateBrowser() {
        driver.quit();
    }
}

Na podstawie tabeli i kodu moลผemy przewidzieฤ‡, ลผe sekwencja bฤ™dzie wyglฤ…daฤ‡ nastฤ™pujฤ…co:

  • 1. โ€” launchBrowser()
  • 2. โ€” verifyHomepageTitle()
  • 3. โ€” terminateBrowser()

Umiejscowienie blokรณw adnotacji w pliku ลบrรณdล‚owym nie ma wpล‚ywu na kolejnoล›ฤ‡ ich wykonywania. Sprรณbuj zmieniฤ‡ metody, jak pokazano poniลผej.

package firsttestngpackage;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.*;

public class FirstTestNGFile {

    public String baseUrl = "https://demo.guru99.com/test/newtours/";
    public WebDriver driver;

    @AfterTest                              // Jumbled
    public void terminateBrowser() {
        driver.quit();
    }

    @BeforeTest                             // Jumbled
    public void launchBrowser() {
        System.out.println("launching firefox browser");
        driver = new FirefoxDriver();
        driver.get(baseUrl);
    }

    @Test                                   // Jumbled
    public void verifyHomepageTitle() {
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);
    }
}

Uruchom kod i sprawdลบ wynik.

TestNG wynik potwierdzajฤ…cy zamรณwienie pomimo chaotycznych adnotacji

@BeforeMethod i @AfterMethod

@Bez tytuล‚u Metody w ramach tej adnotacji przed kaลผdฤ… metodฤ… testowฤ….
@Poradnik Metody w ramach tej adnotacji po kaลผdej metodzie testowej.

In Mercury Wycieczki, zaล‚รณลผmy, ลผe chcemy zweryfikowaฤ‡ tytuล‚y dwรณch stron docelowych, do ktรณrych uzyskano dostฤ™p ze strony gล‚รณwnej.

Trzy linki z Mercury Strona gล‚รณwna wycieczek

Przebieg testu jest nastฤ™pujฤ…cy:

  • Otwรณrz stronฤ™ gล‚รณwnฤ… i sprawdลบ jej tytuล‚.
  • Kliknij ZAREJESTRUJ SIฤ˜ i sprawdลบ tytuล‚ strony docelowej.
  • Wrรณฤ‡ na stronฤ™ gล‚รณwnฤ… i zweryfikuj tytuล‚.
  • Kliknij WSPARCIE i sprawdลบ tytuล‚ strony docelowej.
  • Wrรณฤ‡ na stronฤ™ gล‚รณwnฤ… i ponownie zweryfikuj tytuล‚.

Poniลผszy kod pokazuje, jak @BeforeMethod i @AfterMethod obsล‚ugujฤ… powtarzajฤ…ce siฤ™ kroki.

package firsttestngpackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.*;

public class FirstTestNGFile {

    public String baseUrl = "https://demo.guru99.com/test/newtours/";
    public WebDriver driver;
    public String expected = null;
    public String actual = null;

    @BeforeTest
    public void launchBrowser() {
        System.out.println("launching firefox browser");
        driver = new FirefoxDriver();
        driver.get(baseUrl);
    }

    @BeforeMethod
    public void verifyHomepageTitle() {
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);
    }

    @Test(priority = 0)
    public void register() {
        driver.findElement(By.linkText("REGISTER")).click();
        expected = "Register: Mercury Tours";
        actual = driver.getTitle();
        Assert.assertEquals(actual, expected);
    }

    @Test(priority = 1)
    public void support() {
        driver.findElement(By.linkText("SUPPORT")).click();
        expected = "Under Construction: Mercury Tours";
        actual = driver.getTitle();
        Assert.assertEquals(actual, expected);
    }

    @AfterMethod
    public void goBackToHomepage() {
        driver.findElement(By.linkText("Home")).click();
    }

    @AfterTest
    public void terminateBrowser() {
        driver.quit();
    }
}

Po uruchomieniu testu, TestNG podaje sekwencjฤ™ poniลผej.

TestNG sekwencja raportรณw przy uลผyciu BeforeMethod i AfterMethod

Krรณtko mรณwiฤ…c: umieล›ฤ‡ kroki instalacyjne wewnฤ…trz @Bez tytuล‚u i czyszczenie lub resetowanie nawigacji w ล›rodku @Poradnik wiฤ™c kaลผdy przypadek testowy zaczyna siฤ™ i koล„czy w znanym stanie.

Podsumowanie TestNG Adnotacje

  • @BeforeSuite: uruchamia siฤ™ przed wszystkimi testami w zestawie.
  • @AfterSuite: uruchamia siฤ™ po wszystkich testach w pakiecie.
  • @BeforeTest: uruchamia siฤ™ przed jakฤ…kolwiek metodฤ… testowฤ… naleลผฤ…cฤ… do klas wewnฤ…trz etykietka.
  • @AfterTest: uruchamia siฤ™ po wszystkich metodach testowych naleลผฤ…cych do klas wewnฤ…trz etykietka.
  • @BeforeGroups: uruchamia siฤ™ krรณtko przed pierwszฤ… metodฤ… testowฤ… naleลผฤ…cฤ… do ktรณrejkolwiek z wymienionych grup.
  • @AfterGroups: uruchamiana jest krรณtko po ostatniej metodzie testowej naleลผฤ…cej do ktรณrejkolwiek z wymienionych grup.
  • @BeforeClass: uruchamia siฤ™ przed pierwszฤ… metodฤ… testowฤ… w bieลผฤ…cej klasie.
  • @AfterClass: uruchamia siฤ™ po wszystkich metodach testowych w bieลผฤ…cej klasie.
  • @BeforeMethod: uruchamia siฤ™ przed kaลผdฤ… metodฤ… testowฤ….
  • @AfterMethod: uruchamia siฤ™ po kaลผdej metodzie testowej.
  • @Test: oznacza metodฤ™ jako przypadek testowy.

FAQ

JUnit 5 zmodernizowanych JUnit z modelem API i rozszerzeล„ Jupiter. TestNG nadal prowadzi w zakresie rรณwnolegล‚ego wykonywania, grupa na poziomie pakietuping, dependentOn i DataProvider. Wiele Selenium wybรณr druลผyn TestNG dla kompleksowych apartamentรณw i JUnit 5 dla testรณw jednostkowych.

Dodaj parallel=โ€methodsโ€ lub parallel=โ€classesโ€ oraz atrybut thread-count na znacznik wewnฤ…trz pliku testng.xml. TestNG nastฤ™pnie dystrybuuje metody testowe pomiฤ™dzy wฤ…tkami, co jest idealnym rozwiฤ…zaniem Selenium Siatka lub chmura dziaล‚ajฤ… w wielu przeglฤ…darkach.

@DataProvider przekazuje wiele zestawรณw danych do jednej metody @Test. Kaลผdy wiersz w dostawcy to jedno wykonanie. Jest to standardowy wzorzec dla metod opartych na danych. Selenium testy formularzy, pรณl wyszukiwania lub ekranรณw logowania.

Tak. AI asystenci kodowania generujฤ… TestNG szkielety, adnotacje do metod @Test, tworzenie klas obiektรณw Page Object i tworzenie tablic DataProvider z przykล‚adowych plikรณw CSV, co znacznie skraca czas tworzenia rusztowaล„.

Generative AI pobiera pliki testng-results.xml i logi Surefire, grupuje podobne bล‚ฤ™dy, sugeruje prawdopodobne przyczyny i tworzy zgล‚oszenia w Jira. Skraca to selekcjฤ™ niestabilnych testรณw i pomaga kierownikom ds. zapewnienia jakoล›ci w ustalaniu priorytetรณw poprawek w ramach ciฤ…gล‚ej integracji (CI).

Podsumuj ten post nastฤ™pujฤ…co: