Top 19 TestNG-interviewspørgsmål og -svar (2025)
Her er TestNG-interviewspørgsmål og svar til friskere såvel som erfarne kandidater til at få deres drømmejob.
1) Hvad er TestNG?
TestNG er et automatiseret open source-testframework. Det er baseret på JUnit-frameworket, men er ikke en JUnit-udvidelse.
Gratis PDF-download: TestNG-interviewspørgsmål
2) Hvad er TestNG-funktionerne?
TestNG funktioner inkluderer
- TestNG bruger flere OO (objektorienterede) og Java-funktioner
- Det understøtter test af integrerede klasser
- Forskellige annoteringer understøttes
- Adskil kompileringstidstestkoden fra datainfo/kørselstidskonfiguration
- Run-time konfiguration er fleksibel
- Fleksibel plug-in API
- For yderligere fleksibilitet indlejrer BeanShell
- Multi-threaded selen test support
- Understøtter parallel test, belastningstest, delvis fejl, afhængige testmetoder
- Efter kompilering af testen kan der sendes en anmodning til TestNG om at køre alle "front-end"-testene eller "langsom", "hurtig", "database"
- Til samme testklasse TestNG-understøttelse for flere instanser
- Til logning, ingen afhængigheder, standard JDK-funktioner til logning og runtime
3) Liste over fordelene ved TestNG frem for Junit?
Fordele ved TestNG frem for JUnit inkluderer
- Sammenlignet med JUnit-annoteringer er TestNG nemme at forstå
- I modsætning til JUnit kræver TestNG ikke at deklarere @Before Class og @After Class
- Metodenavnebegrænsning er der ikke i TestNG
- TestNG giver dig mulighed for nemt at gruppere testcases, hvilket ikke er muligt i JUnit
- TestNG understøtter følgende tre yderligere opsætninger: @Before/After Suite, @Before/After Test og @Before/After Group
- TestNG behøver ikke at udvide nogen klasse
- I TestNG er det muligt at køre selen web driver test cases parallelt
- Baseret på gruppe giver TestNG dig mulighed for at udføre testcaserne
- TestNG giver dig mulighed for at bestemme de afhængige testcases; hver testcase er autonom i forhold til en anden testcase
4) Hvad er de grundlæggende trin, der kræves for at skrive TestNG-tests?
De grundlæggende trin, der kræves ved at skrive TestNG inkluderer
- Skriv forretningslogikken for din test ned, og indsæt TestNG-annoteringer i din kode
- I en bygning.xml eller testing.xml, skal du tilføje oplysningerne om din test
- Kør TestNG
5) Angiv forskellige måder, hvorpå TestNG kan påberåbes.
TestNG kan påberåbes på forskellige måder, f.eks
- Ved brug af Eclipse
- Med myre
- Fra kommandolinjen
- Brug af IntelliJ's IDEA
6) Forklar brugen af filen testng.xml
Filen testing.xml fanger hele din test i XML. Denne fil gør det nemt at definere alle dine testsuiter og deres parametre i én fil, som du kan verificere i dit kodelager eller e-maile til kolleger. Det gør det også nemt at trække undersæt af dine tests ud eller opdele flere runtime-konfigurationer.
7) Hvordan kan du deaktivere en test i TestNG?
For at deaktivere den testcase, du ikke ønsker, kan du bruge annoteringer @Test(enabled = false).
8) Hvad er Time-Out test i TestNG?
Time-Out-testen i TestNG er intet andet end den tid, der er tildelt til at udføre enhedstestning. Hvis enhedstesten ikke afsluttes inden for den specifikke tidsgrænse, vil TestNG opgive yderligere softwaretest og markere den som en fejl.
9) Forklar undtagelsestest
TestNG giver mulighed for at spore kodens håndtering af undtagelser. Du kan teste, om en kode giver de forventede resultater eller ej. Parameteren "expected Exceptions" er tilgængelig sammen med annotationen @Test.
10) Hvad gør "suite-testen" i TestNG?
"Suite Test" udføres, når du skal køre et par enhedstests sammen. "Suite Test" samler disse enhedstests. En XML-fil bruges til at køre suitetesten.
11) Hvad er parametriseret test?
Parameteriseret testning giver udviklere mulighed for at udføre den samme test igen og igen med forskellige værdier. TestNG giver dig mulighed for at sende parametre direkte til dine testmetoder på to forskellige måder.
- Med testing.xml
- Med dataudbydere
12) Hvordan kan du køre JUnit-testene ved hjælp af TestNG?
Du kan køre JUnit-testene ved hjælp af TestNG by
- Placering af JUnit-biblioteket på TestNG-klassestien, så det kan lokalisere og bruge JUnit-klasser
- Skift din testløber fra JUnit til TestNG i Ant, og kør derefter TestNG i "blandet tilstand". Dette vil bringe alle dine test på samme måde
Denne tilgang giver dig også mulighed for at konvertere din eksisterende JUnit-test til TestNG.
13) Hvad indikerer @Test(invocationCount=?) og (threadPoolSize=?)?
- @Test (threadPoolSize=?): ThreadPoolSize-attributterne fortæller TestNG at danne en trådpulje for at køre testmetoden gennem flere tråde. Med en trådpulje reduceres testmetodens køretid meget.
- @Test(invocationCount=?): Opkaldstællingen fortæller, hvor mange gange TestNG skal køre denne testmetode
14) Hvad er de forskellige måder, hvorpå du kan producere rapporter for TestNG-resultater?
Der er to måder at producere en rapport med Test NG på, det er de
- Lyttere: For at en lytterklasse skal implementere, skal klassen implementere org.testng./TestListener-grænsefladen. Disse klasser informeres under kørsel af TestNG, når testen begynder, slutter, springer over, består eller mislykkes.
- journalister: For at en rapporteringsklasse skal implementere, skal klassen implementere en org.testng/Reporter-grænseflade. Når hele serien slutter, kaldes disse klasser. Når det kaldes, bliver objektet, der består af informationen fra hele testkørslen, leveret til denne klasse.
15) Hvad er gruppetest i TestNG?
Det er en ny funktion inkluderet i TestNG; den giver dig mulighed for at opdele metoder i de rigtige portioner og udføre gruppering af testmetoder. Med group test kan du ikke kun deklarere metoder, der tilhører grupper, men du kan også angive testgrupper, der indeholder andre grupper. Grupper bestemmes i din testing.xml-fil ved hjælp af group test.
16) Hvad er måderne til at tillade, at TestNG giver dig mulighed for at specificere afhængigheder?
TestNG giver dig mulighed for at angive afhængigheder på to måder
- Brug af attributter afhænger af metoder i @Test-annoteringer
- Brug af attributter afhænger af grupper i @Test-annoteringer
17) Hvad betyder det, når du skal sende parametre ved hjælp af data-udbydere i TestNG?
Når du skal overføre komplekse parametre eller parametre, der skal oprettes fra Java, kan parametre i sådanne tilfælde overføres ved hjælp af dataudbydere. Annotationen for dataudbyderen er @DataProvider. Denne annotation har kun en enkelt strengattribut, hvis navnet ikke er deklareret; dataudbyderens navn bruges automatisk som standard til metodens navn. En dataudbyder giver tilbage en matrix af genstande.
18) Nævn forskellige metoder til at udføre test i TestNG?
Testene i TestNG udføres ved hjælp af TestNG-klassen. For at køre tests i TestNG-testframeworket er klassen det primære indgangspunkt. Brugere kan oprette deres TestNG-objekt og kalde det på mange forskellige måder, f.eks.
- På en allerede eksisterende test.xml
- På en syntetisk testing.xml oprettet udelukkende fra Java
- Ved direkte at indstille testklasserne
19) Giv prøven TestNG-kode
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; public class firsttestngfile { public String baseUrl = "http://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver ; @Test public void verifyHomepageTitle() { System.out.println("launching firefox browser"); System.setProperty("webdriver.firefox.marionette", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); driver.close(); } }
Disse interviewspørgsmål vil også hjælpe i din viva(orals)
God til at forberede sig til interviews
I spørgsmål nr. 6 har du skrevet test.xml i stedet for testng.xml
Tak … dette er rettet
Første linje i 3. spørgsmål skal være "Fordele ved TestNG over JUnit inkluderer".
Tak for spørgsmålene.
Fejl rettet!
11) Hvad er parametrisk test? Det skal være Hvad er parametriseret test?
Hej, tak fordi du skrev. Den bliver gennemgået og opdateret.