Top 50 TestNG Pitanja i odgovori za intervju (2026.)
Priprema za TestNG intervju? Vrijeme je da razmislite o pitanjima koja pokazuju vaลกe snage. ฤvrst TestNG Temelj intervjua otkriva dubinu, samopouzdanje i spremnost koje cijene timovi za zapoลกljavanje.
Moguฤnosti u ovom podruฤju obuhvaฤaju rast automatizacije, razvoj okvira i praktiฤne aplikacije za testiranje koje zahtijevaju tehniฤko i profesionalno iskustvo. Rad u ovom podruฤju zahtijeva struฤnost u domeni, analitiฤke vjeลกtine i fleksibilan skup vjeลกtina koji pomaลพe poฤetnicima, srednjim i viลกim struฤnjacima da shvate uobiฤajena pitanja i odgovore na tehniฤka, osnovna i napredna pitanja. ฤitaj viลกeโฆ
๐ Besplatno preuzimanje PDF-a: TestNG Pitanja i odgovori za intervju
vrh TestNG Intervjuirajte pitanja i odgovore
1) ล to je TestNG i zaลกto se koristi u automatiziranom testiranju?
TestNG (Test Next Generation) je okvir za testiranje inspiriran JUnit i NUnit, ali poboljลกan naprednim moguฤnostima kao ลกto je grouping, sekvenciranje, parametrizacija i upravljanje ovisnostima. Primarno se koristi u automatiziranom testiranju za pojednostavljenje izvrลกavanja testova, poboljลกanje organizacije testova i generiranje detaljnih HTML i XML izvjeลกฤa.
Kljuฤne prednosti od TestNG ukljuฤuju:
- Podrลพava paralelno izvrลกavanje testova, smanjujuฤi ukupno vrijeme izvoฤenja.
- Pruลพa biljeลกke koji uฤinkovito kontroliraju tijek testiranja.
- Ponude testiranje temeljeno na podacima kroz
@DataProviderkomentarima. - generira prilagodljiva izvjeลกฤa za bolje otklanjanje pogreลกaka.
Na primjer, TestNG Omoguฤuje vam neovisno izvrลกavanje grupa za testiranje dima, regresije i integracije bez mijenjanja testnog koda, nudeฤi fleksibilnost i skalabilnost u velikim automatizacijskim paketima.
2) Objasnite TestNG ลพivotni ciklus s anotacijama i njihovim redoslijedom izvrลกavanja.
The TestNG ลฝivotni ciklus definira kako se testovi inicijaliziraju, izvrลกavaju i zavrลกavaju. Kontrolira se putem anotacija koje pruลพaju strukturu i jasnoฤu toku testiranja.
| pribiljeลกka | Description | Nalog za izvrลกenje |
|---|---|---|
@BeforeSuite |
Izvodi se prije svih testova u paketu | 1 |
@BeforeTest |
Izvrลกava se prije <test> oznaka u XML-u |
2 |
@BeforeClass |
Izvrลกava se prije prve metode u trenutnoj klasi | 3 |
@BeforeMethod |
Izvrลกava se prije svake ispitne metode | 4 |
@Test |
Sadrลพi stvarnu logiku testiranja | 5 |
@AfterMethod |
Izvodi se nakon svake metode testiranja | 6 |
@AfterClass |
Izvrลกava se nakon svih metoda u klasi | 7 |
@AfterTest |
Trฤi nakon <test> oznaka u XML-u |
8 |
@AfterSuite |
Izvrลกava se nakon svih testova u paketu | 9 |
Ovakav strukturirani redoslijed osigurava predvidljivo postavljanje i rastavljanje testiranja, ลกto je kljuฤno za odrลพavanje neovisnosti testiranja.
3) Kako je TestNG drugaฤiji od JUnit?
Iako se oba okvira koriste za jediniฤno testiranje, TestNG pruลพa robusniju konfiguraciju i moguฤnosti paralelnog izvrลกavanja.
| svojstvo | JUnit | TestNG |
|---|---|---|
| Paralelno izvoฤenje | Ograniฤena podrลกka | Potpuna podrลกka |
| Biljeลกke | Manje (@Before, @After) |
Bogatiji (@BeforeSuite, @DataProvider) |
| Upravljanje ovisnostima | Nije dostupno | Dostupno putem dependsOnMethods |
| Grouping | Nije podrลพano | Podrลพano koriลกtenjem groups |
| Parametriranje | Kroz vanjske trkaฤe | Ugraฤeno putem XML-a ili @DataProvider |
U saลพetku, TestNG je poลพeljna za automatizirano testiranje na razini poduzeฤa i integraciju s alatima poput Selenium, dok JUnit idealan je za jednostavnije jediniฤne testove.
4) ล to su TestNG anotacije i kako su korisne?
Biljeลกke u TestNG definiran struktura i ponaลกanje metoda ispitivanjaEliminiraju potrebu za sloลพenom XML konfiguracijom pruลพajuฤi deklarativnu kontrolu testiranja izravno u kodu.
ฤesto koriลกtene napomene ukljuฤuju:
@BeforeSuite,@BeforeTest,@BeforeClass,@BeforeMethod@Test@AfterMethod,@AfterClass,@AfterTest,@AfterSuite
Primjer:
@BeforeMethod
public void setup() {
System.out.println("Initializing browser...");
}
@Test
public void verifyLogin() {
System.out.println("Executing login test...");
}
To pomaลพe programerima da logiฤki organiziraju izvrลกavanje testova, osiguravajuฤi da se postavljanje, izvrลกavanje testa i rastavljanje odvijaju definiranim redoslijedom.
5) Objasnite koncept grupeping in TestNG.
Grouping in TestNG omoguฤuje logiฤku kategorizaciju testova u manje, upravljive skupove kao ลกto su โDimโ, โRegresijaโ ili โRazumno stanjeโ.
Primjer:
@Test(groups = {"Smoke"})
public void loginTest() { ... }
@Test(groups = {"Regression"})
public void paymentTest() { ... }
Svoj XML paket moลพete konfigurirati za pokretanje odreฤenih grupa:
<groups>
<run>
<include name="Smoke"/>
</run>
</groups>
Prednosti:
- Olakลกava selektivno izvrลกavanje testnih sluฤajeva.
- Poveฤava fleksibilnost u CI/CD cjevovodima.
- ล tedi vrijeme izvrลกavanja tijekom inkrementalnih izrada.
6) Kako se moลพe postiฤi parametrizacija u TestNG?
Parametrizacija omoguฤuje testiranje voฤeno podacima, ลกto omoguฤuje izvoฤenje testova s โโviลกe ulaznih skupova podataka. TestNG podrลพava dvije primarne metode:
- Koriลกtenje
@Parametersanotacija s XML-om: - Koriลกtenje
@DataProvider:
<parameter name="browser" value="chrome"/>
@Test
@Parameters("browser")
public void launchBrowser(String browser) { ... }
@DataProvider(name="loginData")
public Object[][] getData() {
return new Object[][] {{"user1","pass1"}, {"user2","pass2"}};
}
@Test(dataProvider="loginData")
public void loginTest(String user, String pass) { ... }
Ova fleksibilnost olakลกava odrลพavanje i izvrลกavanje velikih skupova testova u razliฤitim okruลพenjima ili konfiguracijama.
7) ล to su ovisnosti u TestNG i kako se njima upravlja?
Ovisnosti u TestNG kontrolirati redoslijed izvrลกavanja testova na temelju rezultata drugih testova pomoฤu dependsOnMethods or dependsOnGroups atributa.
Primjer:
@Test
public void loginTest() { ... }
@Test(dependsOnMethods = {"loginTest"})
public void verifyDashboard() { ... }
Ako zavisna metoda ne uspije, sljedeฤi test se automatski preskaฤe.
Ovaj mehanizam sprjeฤava izvrลกavanje neispravnih testova i pomaลพe u odrลพavanju logiฤki test integritetaPosebno je korisno za viลกekoraฤne funkcionalne tokove poput prijave โ izvrลกavanja radnje โ provjere rezultata.
8) Koji su razliฤiti naฤini izvrลกenja TestNG testovi?
TestNG Testovi se mogu izvrลกavati na nekoliko fleksibilnih naฤina ovisno o postavkama testiranja:
- Iz IDE-a (Eclipse/IntelliJ): Desnim klikom miลกa na razred ili
XML fileโRun asโTestNG Test. - Iz naredbenog retka:
java -cp "path\testng.jar;bin" org.testng.TestNG testng.xml - Koriลกtenje alata za izgradnju:
- Maven: konfigurirati
surefire-plugininpom.xml. - Gradle: Koristiti
testngovisnost i konfiguracija zadatka.
- Maven: konfigurirati
- Kroz CI/CD cjevovode: Integrirano sa Jenkins ili GitHub akcije za automatsko izvrลกavanje.
Ova raznolikost osigurava kompatibilnost izmeฤu razvojnih, testnih i produkcijskih okruลพenja.
9) ล to su TestNG sluลกatelji i zaลกto su oni vaลพni?
Sluลกatelji unutra TestNG omoguฤiti kuke za prilagoฤavanje ponaลกanja testa praฤenjem dogaฤaja izvrลกavanja testa kao ลกto su poฤetak, uspjeh, neuspjeh ili preskakanje.
Uobiฤajeni sluลกatelji:
ITestListener: Tracdogaฤaji na razini ks metode testiranja.ISuiteListener: Nadgleda dogaฤaje na razini apartmana.IReporter: Generira prilagoฤena izvjeลกฤa.
Primjer:
public class CustomListener implements ITestListener {
public void onTestFailure(ITestResult result) {
System.out.println("Test Failed: " + result.getName());
}
}
Sluลกaฤi se ฤesto koriste za uzimanje snimke zaslona pri neuspjehu, generiranje prilagoฤeni zapisnici, ili integracija s alatima za izvjeลกtavanje poput Allurea ili ExtentReportsa.
10) Koje su prednosti i nedostaci koriลกtenja TestNG?
| Aspekt | Prednosti | Nedostaci |
|---|---|---|
| Fleksibilnost | Podrลพava grupuping, ovisnost i paralelno izvrลกavanje | Sloลพeno postavljanje XML-a za velike pakete |
| Izvjeลกtavanje | Pruลพa detaljna HTML i XML izvjeลกฤa | Ograniฤena prilagodba bez sluลกatelja |
| Integracija | Besprijekorno radi s Selenium i CI/CD alate | Neลกto viลกa krivulja uฤenja |
| Parametriranje | Ugraฤena podrลกka za testiranje temeljeno na podacima | Zahtijeva odrลพavanje za velike skupove podataka |
Sve u svemu, TestNG je robustan i fleksibilan okvir pogodan za moderna okruลพenja za automatizirano testiranje unatoฤ malim troลกkovima konfiguracije.
11) Kako moลพete odrediti prioritete testnih sluฤajeva u TestNG?
TestNG pruลพa priority atribut u @Test anotacija za definiranje redoslijeda kojim bi se metode testiranja trebale izvrลกavati. Testovi s niลพim vrijednostima prioriteta izvrลกavaju se prvi.
Primjer:
@Test(priority = 1)
public void loginTest() { ... }
@Test(priority = 2)
public void dashboardTest() { ... }
Ako nije naveden prioritet, zadana vrijednost je 0, a metode se izvrลกavaju abecednim redom.
Najbolja vjeลพba: Koristite vrijednosti prioriteta ลกtedljivo. Prekomjerna upotreba moลพe uฤiniti redoslijed testiranja krutim. Za sloลพene tokove, upravljanje ovisnostima (dependsOnMethods) je odrลพivije od stroge prioritizacije.
12) Objasnite koncept i upotrebu paralelnog izvrลกavanja u TestNG.
Paralelno izvrลกavanje u TestNG omoguฤuje istovremeno izvoฤenje viลกe testova, klasa ili metoda, znaฤajno smanjujuฤi ukupno vrijeme izvrลกavanja.
Ovu znaฤajku moลพete omoguฤiti u testng.xml Datoteka:
<suite name="ParallelSuite" parallel="tests" thread-count="3"> <test name="Test1">...</test> <test name="Test2">...</test> </suite>
Podrลพani paralelni naฤini rada:
testsclassesmethodsinstances
Prednosti:
- Brลพi ciklus povratnih informacija.
- Uฤinkovito koriลกtenje viลกejezgrenih procesora.
- Skalabilnost za velike automatizacijske pakete.
Meฤutim, osigurajte sigurnost niti pri koriลกtenju dijeljenih resursa poput WebDrivera ili veza s bazom podataka.
13) ล to su pruลพatelji podataka u TestNGPo ฤemu se razlikuju od parametara?
@DataProvider omoguฤuje testiranje temeljeno na podacima pruลพanjem metoda ispitivanja s viลกe skupova podataka.
Primjer:
@DataProvider(name="credentials")
public Object[][] data() {
return new Object[][] {{"user1", "pass1"}, {"user2", "pass2"}};
}
@Test(dataProvider="credentials")
public void login(String username, String password) { ... }
Razlika izmeฤu @Parameters i @DataProvider:
| svojstvo | @Parameters |
@DataProvider |
|---|---|---|
| Izvor podataka | XML datoteka | Java naฤin |
| Tip podataka | Jedan skup podataka | Viลกe skupova podataka |
| Fleksibilnost | Less | visok |
| Koristite sluฤaj | Varijable okoline | Ponovljeni testovi temeljeni na podacima |
Stoga, @DataProvider je poลพeljnije prilikom izvoฤenja jednog testa s viลกe skupova podataka, kao ลกto je provjera prijave s viลกe vjerodajnica.
14) Kako moลพete onemoguฤiti ili preskoฤiti test u TestNG?
Test moลพete onemoguฤiti u TestNG pomoฤu enabled atributom ili programskim preskakanjemping to.
1. koristeฤi enabled = false:
@Test(enabled = false)
public void skipTest() {
System.out.println("This test will not run.");
}
2. Preskoฤiping tijekom izvoฤenja koristeฤi SkipException:
@Test
public void conditionalSkip() {
throw new SkipException("Skipping this test due to condition.");
}
Onemoguฤavanje je korisno za privremeno deaktiviranje nestabilni ili nepotpuni testovi bez brisanja. Preskoฤiping vrijedan je za uvjeti izvoฤenja, kao preskoฤiping testovi za nepodrลพane preglednike.
15) Koja je uloga datoteke testng.xml i koje su njezine glavne komponente?
The testng.xml datoteka je konfiguracijska okosnica TestNGDefinira testne pakete, testne grupe, parametre i postavke paralelnog izvrลกavanja.
Primjer strukture:
<suite name="AutomationSuite">
<parameter name="browser" value="chrome"/>
<test name="RegressionTests">
<classes>
<class name="com.test.LoginTest"/>
<class name="com.test.PaymentTest"/>
</classes>
</test>
</suite>
Glavne komponente:
<suite>โ Definira cijeli apartman.<test>โ Predstavlja testni blok.<classes>โ Navodi ispitne klase.<methods>โ Filtrira specifiฤne metode ispitivanja.<parameter>โ Pruลพa globalne parametre ili parametre na razini testiranja.
XML datoteka pruลพa centralizirana kontrola prekomjerno izvrลกavanje bez promjene koda.
16) Kako moลพete generirati izvjeลกฤa u TestNG?
TestNG automatski generira dvije vrste izvjeลกฤa:
- HTML izvjeลกฤe (
test-output/index.html) โ Saลพima poloลพene, neuspjeลกne i preskoฤene testove. - XML izvjeลกฤe โ Koristi se za integraciju s CI/CD alatima.
Za napredno izvjeลกtavanje, TestNG integrira se sa:
- Izvjeลกฤa o opsegu โ Nudi grafiฤke nadzorne ploฤe i detaljne zapise.
- Izvjeลกฤa Allurea โ Pruลพa vizualnu analitiku s koracima testiranja, snimkama zaslona i zapisnicima.
Primjer integracije:
ExtentReports extent = new ExtentReports();
ExtentTest test = extent.createTest("Login Test");
test.pass("Test Passed Successfully");
extent.flush();
Ova izvjeลกฤa su neophodna za trackraljevski trendovi i identificiranje slabih podruฤja u pokrivenosti testovima.
17) U ฤemu su tvornice? TestNG, i kako rade?
Tvornice u TestNG koriste se za stvaranje dinamiฤke instance testnih klasaOmoguฤuju parametrizirano instanciranje klasa prije pokretanja testova.
Primjer:
public class FactoryExample {
private String browser;
public FactoryExample(String browser) {
this.browser = browser;
}
@Factory
public static Object[] factoryMethod() {
return new Object[] { new FactoryExample("Chrome"), new FactoryExample("Firefox") };
}
@Test
public void testBrowser() {
System.out.println("Running test on: " + browser);
}
}
Prednosti:
- omoguฤuje stvaranje parametriziranih objekata.
- Idealno za testiranje na viลกe preglednika i izvrลกavanje u viลกe okruลพenja.
Tvornice nadopunjuju DataProvidere kada su vam potrebne razliฤite konfiguracije objekata, a ne samo varijacije podataka na razini metode.
18) Kako moลพete koristiti tvrdnje u TestNG?
Tvrฤenja se koriste za validaciju oฤekivanih naspram stvarnih rezultata unutar metoda ispitivanja.
Vrste tvrdnji:
- Teลกke tvrdnje (klasa tvrdnji):
Zaustavlja izvrลกavanje testa odmah nakon neuspjeha. - Meke tvrdnje (klasa SoftAssert):
Nastavlja izvrลกavanje ฤak i nakon neuspjeha, prijavljujuฤi sve probleme na kraju. - Kada koristiti:
- Koristite teลกke tvrdnje za kritiฤka validacija kao uspjeลกna prijava.
- Koristite meke tvrdnje za viลกestruke provjere unutar jedne metode ispitivanja.
Assert.assertEquals(actual, expected); Assert.assertTrue(condition);
SoftAssert soft = new SoftAssert();
soft.assertEquals(actual, expected);
soft.assertAll();
19) Objasnite razliku izmeฤu @BeforeMethod i @BeforeClass u TestNG.
| Aspekt | @BeforeMethod |
@BeforeClass |
|---|---|---|
| Izvrลกenje | Izvodi prije svakog metoda ispitivanja | Izvodi jednom prije bilo koja metoda u klasi |
| Djelokrug | Po metodi ispitivanja | Po ispitnom razredu |
| Uobiฤajena upotreba | Inicijalizacija preglednika prije svakog testa | Jednokratno uฤitavanje konfiguracije ili postavki preglednika |
Primjer:
@BeforeClass
public void setupClass() {
System.out.println("Executed once per class");
}
@BeforeMethod
public void setupMethod() {
System.out.println("Executed before each method");
}
Koristiti @BeforeMethod kada svaki test zahtijeva ฤisto okruลพenje i @BeforeClass za teลกke zadatke inicijalizacije koji se mogu ponovno koristiti.
20) Kako se TestNG podrลพava injektiranje ovisnosti i koji su njegovi sluฤajevi upotrebe?
TestNG podrลพava injekcija ovisnosti putem ugraฤenog ubrizgavanja konteksta i konfiguracijskih objekata kao ลกto su ITestContext, XmlTest, ili Method.
Primjer:
@Test
public void testContextExample(ITestContext context) {
System.out.println("Suite Name: " + context.getSuite().getName());
}
Upotrijebite sluฤajeve:
- Dinamiฤko dohvaฤanje parametara testa.
- Pristup informacijama o konfiguraciji poput naziva paketa ili postavki paralelnog izvrลกavanja.
- Poveฤanje fleksibilnosti testiranja bez ovisnosti o tvrdom kodiranju.
Ubrizgavanje ovisnosti omoguฤuje programerima da pisati modularne, kontekstualno svjesne testove koje se dinamiฤki prilagoฤavaju promjenama u okolini.
21) Koja je razlika izmeฤu @Factory i @DataProvider u TestNG?
Oboje @Factory i @DataProvider pomaลพu s parametrizacijom, ali rade na razliฤite razine u testnoj arhitekturi.
| svojstvo | @Factory |
@DataProvider |
|---|---|---|
| Djelokrug | Razina razreda | Razina metode |
| Svrha | Stvara viลกe instanci klase s razliฤitim podacima | Pruลพa podatke jednoj metodi ispitivanja |
| Izvrลกenje | Izvrลกava cijelu klasu za svaku instancu | Izvrลกava jednu metodu viลกe puta |
| Idealan sluฤaj upotrebe | Testiranje u viลกe preglednika ili okruลพenja | Funkcionalno testiranje temeljeno na podacima |
Primjer:
- Tvornica: Pokreฤe cijelu klasu po vrsti preglednika.
- Davatelj podataka: Pokreฤe jednu metodu testiranja s viลกe skupova podataka.
Koristiti @Factory kada se sama instancacija objekta mijenja i @DataProvider za varijaciju funkcionalnog ulaza unutar iste instance objekta.
22) Kako moลพete automatski ponovno pokuลกati neuspjeลกne testne sluฤajeve u TestNG?
TestNG pruลพa mehanizam za ponovno pokretanje neuspjelih testnih sluฤajeva pomoฤu IRetryAnalyzer suฤelje.
Primjer implementacije:
public class RetryAnalyzer implements IRetryAnalyzer {
int count = 0;
int maxTry = 2;
public boolean retry(ITestResult result) {
if (count < maxTry) {
count++;
return true;
}
return false;
}
}
Upotreba:
@Test(retryAnalyzer = RetryAnalyzer.class)
public void testLogin() {
Assert.fail("Intentional Failure");
}
Prednosti:
- Smanjuje ljuลกtenje u CI cjevovodima.
- Rjeลกava privremene probleme s mreลพom ili okruลพenjem.
Najbolja vjeลพba: Kombinirajte logiku ponovnog pokuลกaja s odgovarajuฤim zapisivanjem i snimkama zaslona za otklanjanje pogreลกaka u povremenim greลกkama.
23) ฤemu sluลพi ITestContext u TestNG?
ITestContext osigurava kontekstualne informacije o izvoฤenju testa, ukljuฤujuฤi naziv paketa, naziv testa, izlazni direktorij i parametre.
Primjer:
@Test
public void contextExample(ITestContext context) {
System.out.println("Suite: " + context.getSuite().getName());
}
Kljuฤne metode:
getSuite()โ Dohvaฤa informacije na razini paketa.getName()โ Vraฤa naziv testa.setAttribute()/getAttribute()โ Dijeljenje podataka izmeฤu testova.
Omoguฤuje dijeljenje podataka izmeฤu metoda ili klasa testiranja i omoguฤuje dinamiฤko izvjeลกtavanje i evidentiranje.
24) Kako moลพete stvoriti ovisnost izmeฤu testnih grupa u TestNG?
Meฤugrupne ovisnosti moลพete definirati pomoฤu dependsOnGroups atribut u @Test komentarima.
Primjer:
@Test(groups = "Login")
public void login() { ... }
@Test(dependsOnGroups = "Login")
public void verifyProfile() { ... }
Time se osigurava da verifyProfile grupa se izvodi samo ako su svi testovi u Login uspjeลกno proลกla grupa.
Posebno je korisno u integracijsko testiranje, gdje moduli ovise o uspjeลกnom izvrลกavanju drugih (npr. prijava โ profil โ tok odjave).
25) Kako moลพete zanemariti odreฤene metode ispitivanja u TestNG XML datoteka?
Moลพete eksplicitno iskljuฤi metode unutar klase u XML datoteci paketa pomoฤu <exclude> oznake.
Primjer:
<class name="com.test.LoginTests">
<methods>
<exclude name="verifyLogout"/>
</methods>
</class>
To omoguฤuje testerima da privremeno onemoguฤite odreฤene metode bez mijenjanja Java izvorni kod โ koristan u velikim paketima gdje je potrebno dinamiฤko ukljuฤivanje ili iskljuฤivanje na temelju ciklusa izdanja ili prioriteta sprinta.
26) Kako mogu TestNG biti integriran s Selenium WebDriver?
TestNG i Selenium ฤine moฤnu kombinaciju za automatizaciju korisniฤkog suฤelja.
Tipiฤna postavka integracije ukljuฤuje organiziranje testova pomoฤu anotacija, upravljanje postavljanjem/rastavljanjem i pokretanje testova putem XML ili CI alata.
Primjer:
@BeforeMethod
public void setup() {
driver = new ChromeDriver();
}
@Test
public void verifyTitle() {
driver.get("https://example.com");
Assert.assertEquals(driver.getTitle(), "Example Domain");
}
@AfterMethod
public void teardown() {
driver.quit();
}
Prednosti integracije:
- omoguฤuje paralelno testiranje preglednika.
- Olakลกava testna grupaping i izvjeลกtavanje.
- Besprijekorno radi s CI/CD cjevovodi poput Jenkins ili GitHub akcije.
27) Koje su neke najbolje prakse pri koriลกtenju TestNG u velikim automatizacijskim okvirima?
Najbolje prakse:
- Koristiti DescriptImenovanje: Imenujte testove na temelju ponaลกanja, a ne implementacije.
- Grupa polugeping: Stvorite logiฤke testne grupe (Dim, Regresija).
- Izbjegavajte tvrdo kodiranje: Za testne podatke koristite parametre ili datoteke svojstava.
- Minimizirajte ovisnosti: Kad god je to moguฤe, neka testni sluฤajevi budu neovisni.
- Centraliziraj konfiguraciju: Koristiti
testng.xmlza postavljanje apartmana. - Integrirajte izvjeลกtavanje: Koristite sluลกaฤe ili alate treฤih strana poput ExtentReportsa.
- Oprezno koristite logiku ponovnog pokuลกaja: Izbjegavajte maskiranje stvarnih nedostataka.
Slijeฤenje ovoga osigurava skalabilnost, odrลพivost i ฤitljivost u automatizaciji na razini poduzeฤa.
28) Koja je razlika izmeฤu @BeforeTest i @BeforeSuite u TestNG?
| svojstvo | @BeforeTest |
@BeforeSuite |
|---|---|---|
| Djelokrug | Pokreฤe se prije svakog <test> oznaka u XML-u |
Pokreฤe se jednom prije cijelog paketa |
| Frekvencija | Viลกe puta (ako je viลกe <test> blokovi) |
Samo jednom po apartmanu |
| Uobiฤajena upotreba | Inicijaliziraj konfiguraciju na razini testiranja | Postavljanje globalnih resursa |
Primjer:
@BeforeSuite
public void setupSuite() {
System.out.println("Global setup for suite.");
}
@BeforeTest
public void setupTest() {
System.out.println("Setup for each <test> tag.");
}
Koristiti @BeforeSuite za globalne konfiguracije (npr. veza s bazom podataka) i @BeforeTest za inicijalizacije specifiฤne za testiranje.
29) Moลพe TestNG koristiti za testiranje API-ja? Kako?
Da. TestNG moลพe se uฤinkovito koristiti za API testiranje integracijom s HTTP klijentskim bibliotekama kao ลกto su Budite sigurni or HttpClient.
Primjer:
@Test
public void verifyApiResponse() {
Response response = RestAssured.get("https://api.example.com/users");
Assert.assertEquals(response.getStatusCode(), 200);
}
Prednosti:
- omoguฤuje validacija temeljena na tvrdnjama odgovora.
- Podrลพava parametrizacija i testiranje temeljeno na podacima za viลกe krajnjih toฤaka.
- generira strukturirana izvjeลกฤa za REST API validacije.
Kombinacijom TestNG i RestAssured, testeri mogu odrลพavati jedinstveni okvir za automatizaciju za testiranje korisniฤkog suฤelja i API-ja.
30) Kako se prosljeฤuju parametri iz naredbenog retka u TestNG?
XML parametre moลพete nadjaฤati tijekom izvoฤenja prosljeฤivanjem sistemskih svojstava pomoฤu -D zastava.
Primjer naredbe:
mvn test -Dbrowser=chrome -Denv=staging
Code Primjer:
@Parameters("browser")
@Test
public void launch(@Optional("firefox") String browser) {
System.out.println("Running on: " + browser);
}
Ovo omoguฤuje dinamiฤki odabir okruลพenja u CI/CD cjevovodima bez promjene konfiguracijskih datoteka, ลกto poveฤava fleksibilnost testiranja.
31) Kako moลพete kontrolirati redoslijed izvrลกavanja testova u TestNG bez koriลกtenja prioriteta?
Umjesto da koristi priority, TestNG omoguฤuje kontrolu putem ovisnosti i Poredak XML metoda.
Metode:
- Koriลกtenje
dependsOnMethods: - Koriลกtenje XML sekvence metoda:
@Test
public void login() { ... }
@Test(dependsOnMethods = "login")
public void verifyDashboard() { ... }
<classes>
<class name="com.test.LoginTests">
<methods>
<include name="login"/>
<include name="verifyDashboard"/>
</methods>
</class>
</classes>
Najbolja vjeลพba: Za sloลพene tokove preferirajte logiฤke ovisnosti umjesto statiฤnih prioriteta, osiguravajuฤi robusne i odrลพive testne pakete.
32) Kako moลพete izvrลกiti odreฤene metode testiranja iz naredbenog retka u TestNG?
TestNG omoguฤuje izvrลกavanje testa na razini metode izravno iz naredbenog retka pomoฤu XML ili Maven Surefire konfiguracija.
Opcija 1: Koriลกtenje XML datoteke
<class name="com.test.LoginTests">
<methods>
<include name="verifyLogin"/>
</methods>
</class>
Opcija 2: Maven naredba
mvn test -Dtest=com.test.LoginTests#verifyLogin
Ovaj pristup omoguฤuje selektivno izvrลกenje, korisno za otklanjanje pogreลกaka u pojedinaฤnim metodama ili validaciju kritiฤnih funkcionalnosti tijekom brzih izrada.
33) Kako parametrizirati testove pomoฤu vanjske Excel datoteke u TestNG?
Parametrizacija voฤena Excelom uobiฤajena je u okvirima voฤenim podacima gdje se podaci testiranja ฤesto mijenjaju.
Koraci implementacije:
- Koristiti Apache POI or JExcel za ฤitanje Excel podataka.
- Ubacite ga u
@DataProvidermetoda.
Primjer:
@DataProvider(name = "excelData")
public Object[][] readExcel() throws Exception {
FileInputStream fis = new FileInputStream("data.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheetAt(0);
Object[][] data = new Object[sheet.getLastRowNum()][2];
for (int i = 0; i < sheet.getLastRowNum(); i++) {
data[i][0] = sheet.getRow(i + 1).getCell(0).getStringCellValue();
data[i][1] = sheet.getRow(i + 1).getCell(1).getStringCellValue();
}
return data;
}
To omoguฤuje pokretanje iste metode ispitivanja s viลกe skupova podataka iz Excela iz stvarnog svijeta, poveฤavajuฤi fleksibilnost i pokrivenost.
34) Kako moลพeลก trฤati TestNG testovi u Jenkins ili CI/CD cjevovodi?
TestNG besprijekorno se integrira s Jenkins, GitLab CI, ili GitHub radnje putem Mavena ili Gradle gradi.
Ulazi Jenkins:
- Instalirati Maven dodatak za integraciju.
- Napravite Posao slobodnim stilom ili cjevovodom.
- dodati
mvn clean testkao korak izgradnje. - Nakon izgradnje, konfigurirajte HTML izvjeลกฤa:
- Imenik izvjeลกฤa:
test-output - Indeksna datoteka:
index.html
- Imenik izvjeลกฤa:
Prednosti:
- Omoguฤuje automatizirano regresijsko testiranje.
- Pruลพa zakazane probne voลพnje i trendove trackralj.
- Osigurava dosljedno izvrลกavanje testova u svim okruลพenjima.
35) Koja je svrha @Parameters i po ฤemu se razlikuje od @Optional?
Obje anotacije se bave parametrizacijom, ali sluลพe razliฤitim svrhama.
| svojstvo | @Parameters |
@Optional |
|---|---|---|
| Svrha | Prosljeฤuje parametre iz XML datoteke | Pruลพa zadanu vrijednost ako parametar nedostaje |
| izjava | Koristi se s XML-om <parameter> |
Koriลกtena unutarnja metoda ispitivanja |
| Ponaลกanje | Izbacuje greลกku ako vrijednost nedostaje | Koristi rezervnu vrijednost |
Primjer:
@Test
@Parameters("browser")
public void runTest(@Optional("chrome") String browser) {
System.out.println("Running on: " + browser);
}
Koriลกtenje @Optional osigurava stabilnost testa kada XML konfiguracije nisu potpune.
36) Kako se rjeลกavaju ovisnosti testova izmeฤu razliฤitih klasa u TestNG?
Za stvaranje meฤuklasnih ovisnosti, TestNG omoguฤuje koriลกtenje dependsOnGroups atribut.
Primjer:
@Test(groups = "Login")
public void loginTest() { ... }
@Test(groups = "Dashboard", dependsOnGroups = "Login")
public void dashboardTest() { ... }
Ovaj pristup pomaลพe u upravljanju viลกemodulne ovisnosti gdje svaka klasa predstavlja modul (Prijava, Nadzorna ploฤa, Plaฤanje itd.).
Osigurava da se zavisni moduli izvrลกavaju samo ako su preduvjetni testovi uspjeลกni, odrลพavajuฤi integritet testiranja.
37) ล to su konfiguracijski kvarovi u TestNG, i kako se s njima moลพe postupati?
Do kvarova konfiguracije dolazi kada su metode postavljanja ili rastavljanja oznaฤene s @Before* or @After* iznevjeriti.
Mogu uzrokovati zavisni testovi koje treba preskoฤiti, ฤak i ako su ti testovi toฤni.
Najฤeลกฤi uzroci:
- Neispravna inicijalizacija WebDrivera.
- Problemi s postavkama baze podataka ili okruลพenja.
- Pogreลกna konfiguracija parametara.
Rjeลกenja:
- Koristiti pokuลกaj uhvatiti blokovi u metodama postavljanja.
- Korak po korak do prijave
alwaysRun = truekako bi se osiguralo da ฤiลกฤenje teฤe unatoฤ kvarovima.
Primjer:
@BeforeMethod(alwaysRun = true)
public void setup() {
// Setup logic
}
To osigurava da se vaลกe metode rastavljanja i dalje izvrลกavaju, odrลพavajuฤi stabilnost testnog okruลพenja.
38) ฤemu sluลพe atributi invocationCount i threadPoolSize u TestNG?
Ovi atributi omoguฤuju ponovljeno i paralelno izvrลกavanje testova iste metode.
Primjer:
@Test(invocationCount = 5, threadPoolSize = 2)
public void loadTest() {
System.out.println("Running load test...");
}
| Atribut | Description |
|---|---|
invocationCount |
Broj izvoฤenja metode |
threadPoolSize |
Broj istovremenih niti |
Sluฤaj upotrebe: Testiranje performansi, provjera stabilnosti ili reprodukcija nestabilnog ponaลกanja tijekom viลกestrukih pokretanja.
39) Kako pokreฤete samo neuspjeลกne testne sluฤajeve u TestNG?
Nakon obilaska apartmana, TestNG generira datoteku pod nazivom testng-failed.xml u test-output katalog.
Moลพete ponovno pokrenuti samo neuspjeลกne testove izvrลกavanjem:
java -cp testng.jar org.testng.TestNG test-output/testng-failed.xml
Prednosti:
- ล tedi vrijeme preskakanjemping uspjeลกni testovi.
- Olakลกava otklanjanje pogreลกaka u velikim paketima.
- ฤesto se koristi u CI cjevovodima za brza ponovna testiranja.
Takoฤer moลพete ovo integrirati s Jenkins koriลกtenje skripte nakon izgradnje za ponovna pokretanja.
40) Koja su neka ograniฤenja TestNG i kako ih se moลพe ublaลพiti?
Uprkos svojoj robusnosti, TestNG ima nekoliko ograniฤenja.
| Ograniฤenje | Strategija ublaลพavanja |
|---|---|
| Sloลพenost XML konfiguracije | Koristite konfiguraciju i alate za izradu temeljene na napomenama |
| Ograniฤeno izvorno izvjeลกtavanje | Integrirajte ExtentReports ili Allure |
| Nema ugraฤene kontrole ponovnog pokuลกaja | Implementirati IRetryAnalyzer |
| Problemi s nitnom sigurnoลกฤu u paralelnim izvrลกavanjima | Koristi instance WebDrivera lokalne za niti |
| Krivulja uฤenja za poฤetnike | Odrลพavanje struktura projekata temeljenih na predloลกcima |
Pravilnim dizajnom okvira i najboljim praksama, ta se ograniฤenja mogu svesti na najmanju moguฤu mjeru, osiguravajuฤi stabilna i odrลพiva rjeลกenja za automatizaciju.
41) Kako koristite sluลกaฤe za zapisivanje i snimanje snimaka zaslona u Selenium-TestNG?
Sluลกatelji unutra TestNG pomoฤi u praฤenju izvrลกavanja testova i izvrลกavanju radnji poput zapisivanja, snimanja zaslona ili dinamiฤkog izvjeลกtavanja o rezultatima.
Primjer implementacije:
public class ScreenshotListener implements ITestListener {
@Override
public void onTestFailure(ITestResult result) {
WebDriver driver = ((BaseTest) result.getInstance()).getDriver();
File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(src, new File("screenshots/" + result.getName() + ".png"));
}
}
Upotreba:
@Listeners(ScreenshotListener.class)
public class LoginTests extends BaseTest { ... }
Prednosti:
- Automatski biljeลพi kvarove.
- Poboljลกava otklanjanje pogreลกaka putem vizualnih dokaza.
- Smanjuje ruฤni napor pri odrลพavanju logova.
Ova tehnika je kljuฤna u CI/CD automatizacijskim cjevovodima, posebno pri daljinskoj dijagnostici neuspjelih izrada.
42) Koja je razlika izmeฤu IReportera i ITestListenera u TestNG?
| svojstvo | IReporter |
ITestListener |
|---|---|---|
| Svrha | Generira prilagoฤena izvjeลกฤa nakon izvrลกenja testa | Tracks i reagira na dogaฤaje testiranja tijekom izvoฤenja |
| prizivanje | Nakon ลกto su svi testovi zavrลกeni | Tijekom ลพivotnog ciklusa testiranja (poฤetak, uspjeh, neuspjeh) |
| Izlaz | HTML/XML/JSON izvjeลกฤa | Datoteke zapisnika, snimke zaslona, โโnadzorne ploฤe uลพivo |
| Uobiฤajena upotreba | ExtentReports, integracija Allurea | Zapisivanje, rukovanje greลกkama, mehanizmi ponovnog pokuลกaja |
Primjer:
- Koristiti
IReporterza izgradnju iscrpna izvjeลกฤa nakon zavrลกetka testa. - Koristiti
ITestListenerza zapisivanje podataka u stvarnom vremenu ili snimke zaslona.
Oni takoฤer mogu biti kombinirana za izgradnju end-to-end sustava za analitiku automatizacije.
43) Kako provodite testiranje viลกe preglednika pomoฤu TestNG XML konfiguracija?
Testiranje u razliฤitim preglednicima osigurava da ista funkcionalnost radi u razliฤitim preglednicima.
Primjer konfiguracije:
<suite name="CrossBrowserSuite" parallel="tests">
<test name="ChromeTest">
<parameter name="browser" value="chrome"/>
<classes><class name="com.test.LoginTest"/></classes>
</test>
<test name="FirefoxTest">
<parameter name="browser" value="firefox"/>
<classes><class name="com.test.LoginTest"/></classes>
</test>
</suite>
Java Code:
@Parameters("browser")
@BeforeClass
public void setup(String browser) {
if(browser.equalsIgnoreCase("chrome"))
driver = new ChromeDriver();
else if(browser.equalsIgnoreCase("firefox"))
driver = new FirefoxDriver();
}
Ovaj pristup omoguฤuje paralelno izvrลกavanje u viลกe preglednika, ubrzavajuฤi pokrivenost testiranjem na svim platformama.
44) Kako se integrirate TestNG s Dockerom ili Selenium Mreลพa?
TestNG besprijekorno se integrira s Dockerizirano Selenium reลกetka kako bi se omoguฤilo distribuirano paralelno testiranje.
Koraci:
- Postaviti Selenium Mreลพa u Dockeru koristeฤi sluลพbu Selenium slika:
docker run -d -p 4444:4444 --name selenium-grid selenium/standalone-chrome
- Nadopune TestNG postava:
- Izvrลกite svoj paket putem Jenkins ili CI cjevovod.
DesiredCapabilities caps = new DesiredCapabilities();
caps.setBrowserName("chrome");
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
Prednosti:
- omoguฤuje skalabilno paralelno testiranje.
- Smanjuje optereฤenje postavljanja okruลพenja.
- Pruลพa dosljedno izvrลกavanje testova preko distribuiranih kontejnera.
45) Koja je razlika izmeฤu paralelnog izvrลกavanja na razinama paketa, testa i metode u TestNG?
| Nivo | Paralelni atribut | Ponaลกanje pri izvrลกavanju |
|---|---|---|
| Apartman | parallel="suites" |
Istovremeno izvrลกava viลกe paketa |
| test | parallel="tests" |
Izvodi <test> blokovi istovremeno |
| Klasa | parallel="classes" |
Paralelno pokreฤe testne klase |
| naฤin | parallel="methods" |
Paralelno izvrลกava pojedinaฤne metode ispitivanja |
Primjer:
<suite name="ParallelTests" parallel="methods" thread-count="3">
<test name="SampleTest">
<classes><class name="com.test.ParallelExample"/></classes>
</test>
</suite>
Najbolja vjeลพba:Koristiti parallel="classes" za stabilnost u Selenium testove kako bi se izbjegli sukobi zajedniฤkih upravljaฤkih programa.
46) Kako moลพete dijeliti podatke izmeฤu testova bez koriลกtenja globalnih varijabli u TestNG?
TestNG osigurava ITestContext i injekcija ovisnosti za dinamiฤko dijeljenje podataka.
Primjer:
@Test
public void storeData(ITestContext context) {
context.setAttribute("token", "abc123");
}
@Test(dependsOnMethods = "storeData")
public void useData(ITestContext context) {
String token = (String) context.getAttribute("token");
System.out.println("Using token: " + token);
}
Time se izbjegavaju statiฤke varijable, odrลพava sigurnost niti i osigurava izolacija podataka u testovima.
47) Kako biljeลพite i zapisujete preskoฤene testove TestNG?
Preskoฤene testove moลพete snimiti pomoฤu onTestSkipped() u ITestListener suฤelje.
Primjer:
@Override
public void onTestSkipped(ITestResult result) {
System.out.println("Skipped Test: " + result.getName());
}
Razlozi za preskakanjeping:
- Neuspjeh ovisnog testa.
- Uvjetno preskakanjeping preko
SkipException. - Nedostupnost okoline.
Najbolja vjeลพba:
Razloge preskakanja zapisnika i stog traces za tracjednostavnost u CI izvjeลกฤima ili nadzornim ploฤama.
48) Objasnite kako parametrizirati REST API testove pomoฤu TestNG i budite sigurni.
TestNG'S @DataProvider elegantno se integrira s Budite sigurni za parametrizaciju API-ja.
Primjer:
@DataProvider(name = "apiData")
public Object[][] apiData() {
return new Object[][] {
{"https://api.example.com/users/1"},
{"https://api.example.com/users/2"}
};
}
@Test(dataProvider = "apiData")
public void testApi(String url) {
Response response = RestAssured.get(url);
Assert.assertEquals(response.getStatusCode(), 200);
}
Prednosti:
- Izvrลกava isti API poziv za viลกe krajnjih toฤaka ili korisnih tereta.
- Pojednostavljuje regresijsko testiranje za API-je s razliฤitim ulaznim skupovima.
- Besprijekorno se integrira s CI alatima i izvjeลกฤima.
49) Kako stvoriti prilagoฤene napomene u TestNG za obrasce testiranja za viลกekratnu upotrebu?
Prilagoฤene anotacije mogu standardizirati konfiguracije ili validacije koje se ponavljaju.
Primjer:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SmokeTest {
String description() default "Smoke Test";
}
Upotreba:
@SmokeTest(description="Validating Login Functionality")
@Test
public void loginTest() { ... }
U kombinaciji s refleksijom, moลพete dinamiฤki ฤitati ove napomene za grupiranje testova ili pokretanje uvjetnog izvrลกavanja.
Ova tehnika se ลกiroko koristi u okvirno meta-programiranje za izradu samodokumentirajuฤih testova.
50) Kako moลพete kombinirati Cucumber i TestNG za hibridne okvire za testiranje?
TestNG moลพe djelovati kao testni trkaฤ za Cucumber BDD scenariji, nudeฤi snaลพno izvjeลกtavanje i paralelizaciju.
Primjer trkaฤa:
@CucumberOptions(
features = "src/test/resources/features",
glue = "stepDefinitions",
plugin = {"pretty", "html:target/cucumber-report.html"}
)
public class RunCucumberTest extends AbstractTestNGCucumberTests { }
Prednosti:
- utjecati TestNG'S biljeลกke, sluลกatelji i izvjeลกtavanje.
- Podrลพava paralelno izvrลกavanje znaฤajki.
- Integrira se s Vabiti i Izvjeลกฤa o opsegu lako.
Ovaj hibridni pristup spaja ฤitljivost BDD-a sa TestNG fleksibilnost, idealno za okvire poslovne klase.
๐ Vrh TestNG Pitanja za intervju sa stvarnim scenarijima i strateลกkim odgovorima
U nastavku je navedeno 10 realistiฤnih, relevantnih za domenu TestNG pitanja za intervju zajedno s jasnim oฤekivanjima i snaลพnim primjerima odgovora.
1) Moลพete li objasniti kljuฤne prednosti koriลกtenja TestNG u usporedbi sa JUnit?
Oฤekivano od kandidata: Pokazati razumijevanje TestNGpoboljลกane znaฤajke i zaลกto se ฤesto preferira za automatizaciju poduzeฤa.
Primjer odgovora: "TestNG pruลพa nekoliko prednosti kao ลกto su fleksibilna konfiguracija testiranja, podrลกka za paralelno izvrลกavanje, ovisne metode testiranja, testiranje temeljeno na podacima s DataProvidersima i ugraฤeno izvjeลกtavanje. Ove moguฤnosti ฤine TestNG moฤniji za sloลพene okvire automatizacije koji zahtijevaju skalabilnost.โ
2) Kako koristite TestNG anotacije za kontrolu toka izvrลกavanja testa?
Oฤekivano od kandidata: Poznavanje svrhe i redoslijeda anotacija.
Primjer odgovora: "TestNG nudi napomene kao ลกto su @BeforeSuite, @BeforeClass, @BeforeMethod, @Test i njihove odgovarajuฤe napomene za rastavljanje. One omoguฤuju strukturiranu organizaciju postavljanja i ฤiลกฤenja testa. Na primjer, @BeforeMethod se izvrลกava prije svake metode testiranja, ลกto je korisno za inicijalizaciju stanja preglednika.
3) Opiลกite zahtjevan projekt automatizacije gdje TestNG odigrao kljuฤnu ulogu.
Oฤekivano od kandidata: Pravo iskustvo na projektima i sposobnost artikuliranja rjeลกavanja problema.
Primjer odgovora: โU svojoj prethodnoj ulozi radio sam na projektu koji je zahtijevao opseลพno regresijsko testiranje u viลกe okruลพenja.โ TestNGparalelno izvrลกavanje i grupaping znaฤajke omoguฤile su timu da istovremeno pokreฤe kritiฤne pakete, znaฤajno smanjujuฤi vrijeme izvrลกavanja uz odrลพavanje pouzdanosti.โ
4) Kako TestNG Pomaลพu li grupe u uฤinkovitoj organizaciji i provoฤenju testova?
Oฤekivano od kandidata: Razumijevanje grupeping, ukljuฤujuฤi mehanizme ukljuฤivanja/iskljuฤivanja.
Primjer odgovora: โGrupe u TestNG omoguฤuju kategorizaciju testnih sluฤajeva kao ลกto su dim, regresija i integracija. Koriลกtenjem testng.xml datoteke mogu selektivno pokretati grupe, iskljuฤivati โโnestabilne testove i upravljati razliฤitim testnim paketima bez mijenjanja samog koda.
5) Opiลกite situaciju u kojoj ste morali otkloniti greลกke TestNG testovi. Kakav je bio vaลก pristup?
Oฤekivano od kandidata: Vjeลกtine kritiฤkog miลกljenja i rjeลกavanja problema.
Primjer odgovora: โNa prethodnoj poziciji susreo sam se s nizom neuspjeha TestNG testovi koji su se ฤinili prolaznima lokalno, ali nisu uspjeli u CI. Omoguฤio sam detaljno zapisivanje, pregledao redoslijed izvrลกavanja i otkrio da se dijeljeni resurs nije resetirao izmeฤu testova. Zatim sam implementirao odgovarajuฤe korake rastavljanja koristeฤi @AfterMethod kako bih osigurao izolaciju testova.
6) Kako implementirate testiranje temeljeno na podacima koristeฤi TestNG?
Oฤekivano od kandidata: Razumijevanje pruลพatelja podataka i sluฤajeva upotrebe.
Primjer odgovora: โKreiram metodu @DataProvider koja vraฤa podatke u nizovima objekata, a zatim je veลพem za metodu @Test pomoฤu atributa dataProvider. To omoguฤuje viลกestruke iteracije istog testa s razliฤitim ulaznim skupovima, ลกto je korisno za validaciju slanja obrazaca ili varijacija API sadrลพaja.โ
7) Kako upravljate ovisnostima testova u TestNG?
Oฤekivano od kandidata: Pravilna upotreba dependsOnMethods ili dependsOnGroups.
Primjer odgovora: "TestNG dopuลกta ovisnosti testova putem atributa dependsOnMethods i dependsOnGroups. Koristim ovisnosti kada se test mora izvrลกiti tek nakon ลกto se drugi uspjeลกno zavrลกi, kao ลกto je provjera narudลพbe tek nakon njenog kreiranja.
8) Opiลกite kako ste koristili TestNG s alatima za kontinuiranu integraciju.
Oฤekivano od kandidata: Iskustvo u radu s automatiziranim procesima u stvarnom svijetu.
Primjer odgovora: โNa prethodnom poslu sam integrirao TestNG sa Jenkins konfiguriranjem Maven verzije za generiranje TestNG HTML i XML izvjeลกฤa. Jenkins zatim arhivirao izvjeลกฤa i prikazivao rezultate nakon svakog ciklusa izrade. Ova integracija pomogla je timu tracbrzo k kvarovima i odrลพava stabilnost izdanja.โ
9) Recite mi o situaciji kada ste morali raditi u kratkim rokovima dok ste istovremeno upravljali viลกe zadataka automatizacije.
Oฤekivano od kandidata: Upravljanje vremenom i sposobnost odreฤivanja prioriteta.
Primjer odgovora: โU svojoj posljednjoj ulozi, trebao sam aลพurirati postojeฤe TestNG testne pakete, a istovremeno sam stvarao nove za nadolazeฤe izdanje. Prioritizirao sam zadatke na temelju utjecaja na poslovanje, prvo automatizirao podruฤja s najveฤim rizikom i koristio TestNG grupiratiping izolirati dovrลกene dijelove za rani pregled. To je osiguralo pravovremenu isporuku bez ugroลพavanja kvalitete.โ
10) Kako biste dizajnirali skalabilni TestNG okvir za veliku aplikaciju?
Oฤekivano od kandidata: Archirazumijevanje teksture, obrasci i najbolje prakse.
Primjer odgovora: โDizajnirao bih modularni okvir koristeฤi model objekta stranice, integrirao TestNG za upravljanje izvrลกavanjem i koristiti DataProviders za scenarije voฤene podacima. Takoฤer bih konfigurirao paralelno izvrลกavanje, centralizirao usluลพne programe i eksternalizirao postavke konfiguracije kako bi okvir ostao skalabilan i odrลพiv kako aplikacija raste.

