43 TestNg-sollicitatievragen: de meeste beginners weten het niet

In deze tutorial gaan we de uitputtende sets van Critical TestNg interviewvragen en antwoorden en verdeeld afhankelijk van de moeilijkheidsgraad, waar je jezelf beter snel kunt uitrusten op TestNg

Deze sets met Testng-interviewvragen zijn verdeeld in de volgende modules of set:

TestNg Interview Vragen - Advance

TestNg Interview Vragen - Gemiddeld

TestNg Interview Vragen - Basis

Testng sollicitatievragen en antwoorden || Set 1

Hoe sluit je een groep uit van de testuitvoeringscyclus?

U kunt een tag voor uitsluiten gebruiken om een ​​groep testgevallen uit te sluiten van uitvoering op de onderstaande manier in het Testng xml-bestand 

    

        

        

    

Wat zijn de soorten rapporten die standaard in TestNG worden gegenereerd?

TestNG genereert 4 soorten rapporten na de uitvoering, namelijk:

  • TestNG HTML-rapport
  • TestNG Rapport met e-mailfunctie
  • TestNG Rapport XML
  • TestNg Mislukt XML-rapport

Noem het verschil tussen de TestNG-testsuite en de TestNG-test?

TestNG-testsuite is de verzameling testklassen en testmethoden die zowel gelijktijdig als parallel vanuit het TestNG XML-bestand kunnen worden uitgevoerd. 

Aan de andere kant is de TestNG-testmethode een enkel testdossier of testmethode.

Wat is het gebruik van het threadPoolSize-attribuut met de @Test-annotatie 

Via het threadPoolSize attribuut kunnen we een thread pool met de specifiek genoemde grootte definiëren door het nummer voor de testmethode uit te voeren via meerdere beschikbare threads.

Het kenmerk wordt genegeerd als de invocationCount niet wordt vermeld.

@Test(threadPoolSize = 3)
openbare leegte testCaseOne(){
System.out.println("testCaseOne bezig");
}

In de bovenstaande testmethode wordt testCaseOne aangeroepen vanuit de drie verschillende threads.

Wat doen de attributen van alwaysRun?

Dit annotatiekenmerk AlwaysRun wordt gebruikt wanneer u de testmethode wilt uitvoeren, ongeacht de afhankelijke parameters waarvan de testmethode afhankelijk is, of mislukt. Als u true instelt, moet u het attribuut true instellen.

Wat zijn de verschillende luisteraars die beschikbaar zijn?

  • ITestListener
  • IRporter 
  • ISuiteLuisteraar
  • IAnnotatieTransformer 
  • IAnnotatieTransformer2
  • IAanhaakbaar 
  • IInvokedMethodListener 
  • IMethodeInterceptor 

Wat is de standaardwaarde voor de TestNG-prioriteit?

De TestNG-prioriteit heeft de standaardwaarde nul.

Hoe TestNg Failed Tests opnieuw uit te voeren met behulp van het Auto Retry-mechanisme?

TestNg biedt een interface genaamd IRetryAnalyser luisteraar die u de interface kunt implementeren, voer uw mislukte testscripts automatisch opnieuw uit door de klasse in het testNg.XML-bestand te vermelden.Hier is de onderstaande code om hetzelfde te implementeren:

TestNg Opnieuw proberen 1024x747 1
Testng interviewvragen en antwoorden - TestNg Retry Test Script

In het bovenstaande gebied kunt u het aantal herhaalde pogingen, het maximale aantal en ook aangeven in welke uitzonderingen u Testscripts opnieuw wilt uitvoeren.

public class Retry implementeert IRetryAnalyzer {int retryCounter = 0; // Het maximum aantal mislukte uitvoeringen int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; retourneer waar; } retourneer onwaar; } }

Aanpak twee: TestNg Failed Tests opnieuw uitvoeren met behulp van het Auto Retry-mechanisme

In de onderstaande benadering kun je 2 klassen bouwen, dwz één is Probeer de klas opnieuw waar u de logica kunt behouden van het controleren van het aantal iteraties in het geval van testfouten die de interface Testng zullen implementeren IRetryAnalyser.

Een andere klasse is in feite die de andere interface-luisteraar IAnnotationTransformer zal implementeren en de methode zal implementeren transformeren die intern interageert met de vorige klasse (bijv Probeer de klas opnieuw)

public class Retry implementeert IRetryAnalyzer {int retryCounter = 0; // Het maximum aantal mislukte uitvoeringen int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; retourneer waar; } retourneer onwaar; } }

en voeg tenslotte het CognitiveRetry-klasse in de listener voor het bestand testng.xml.

<listeners>
    <listener class-name= "com.lambdageeks.cognitiveRetryUtils.CognitiveRetry"/>
</listeners>

Hoe de implementatie van TestNG itestlistener te bereiken?

ITestListener is een interface in TestNg die meerdere methoden heeft (niet geïmplementeerd sinds het een interface is) die door een klasse kunnen worden geïmplementeerd. Elke methode vertegenwoordigt specifieke functionaliteiten of scenario's, dus afhankelijk van uw behoefte kunt u die methoden implementeren.

Bijvoorbeeld opTestFailure is een methode die u kunt implementeren waar u bewerkingen wilt uitvoeren terwijl een testmethode mislukt, laten we zeggen dat u de schermafbeelding wilt vastleggen in het geval van een testmethode die mislukt, zodat u de takescreenshot-methode in de opTestFailure , en aangezien de ITestListener een interface is, zal testNg blijven luisteren naar de gebeurtenissen (testfouten) en wanneer er testfouten zijn, wordt je screenshot vastgelegd.

Hier is de implementatie van het vastleggen van een schermafbeelding telkens wanneer u het testscript een fout tegenkomt:

importeer org.apache.commons.io.FileUtils; importeer org.openqa.selenium.OutputType; importeer org.openqa.selenium.TakesScreenshot; importeer org.openqa.selenium.WebDriver; importeer org.testng.ITestContext; importeer org.testng.ITestListener; importeer org.testng.ITestResult; java.io.bestand importeren; java.io.IOException importeren; java.util.logging.Logger importeren; openbare klasse CustomListerners implementeert ITestListener { WebDriver driver=null; String filePath = "D:\\\\LambdaGeeks\\\\SCREENSHOTS"; @Override public void onTestFailure(ITestResult resultaat) { String testMethodName=String.valueOf(result.getName()).trim(); ITestContext testContext = resultaat.getTestContext(); WebDriver-stuurprogramma = (WebDriver)testContext.getAttribute("stuurprogramma"); captureTheScreenShot(testMethodName, stuurprogramma); } public void captureTheScreenShot(String methodName, WebDriver driver) { File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); /* Elke schermafbeelding wordt samen met de testnaam opgeslagen voor een betere correlatie */ try { FileUtils.copyFile(scrFile, new File(filePath+methodName+".jpg")); } catch (IOException e) { e.printStackTrace(); } } publieke ongeldigheid onFinish(ITestContext context) {} publieke ongeldigheid onTestStart(ITestResult resultaat) { } publieke ongeldigheid onTestSuccess(ITestResult resultaat) { } publieke ongeldigheid onTestSkipped(ITestResult resultaat) { } publieke ongeldigheid onTestFailedButWithinSuccessPercentage(ITestResult resultaat) { } publieke ongeldigheid onStart (ITestContext-context) { } }

En je moet deze klasse ook toevoegen aan de listener-tag in het bestand testng.xml, zoals we in de vorige vraag hadden gedaan.

Hoe testng iAnnotationtransformer implementeren?

TestNg biedt een interface met de naam IAnnotationTransformer die een methode biedt genaamd "transform" die u kunt implementeren en in runtime zou worden geactiveerd door TestNG, deze implementatie wordt gebruikt om het testannotatiegedrag van de testklasse en testmethoden te wijzigen

In het onderstaande gedeelte zouden we zien hoe we dat zouden kunnen doen

public class TestClassAnnotations { @Test(alwaysRun = true,dependsOnMethods = "testMethodB") public void testMethodA() { System.out.println("--- Het gedrag van de runtime aanpassen met ITestAnnotation ---"); } @Test public void testMethodB() { System.out.println("--- Tweede TestMethods ---"); Beweren.fail(); } }

Als we de bovenstaande code uitvoeren, wordt standaard slechts één methode uitgevoerd, namelijk testMethodA en een andere methode testMethodB zal mislukken omdat we dit opzettelijk niet doen door de Assert.fail () - methode te gebruiken.

Maar als we de Alwaysrun = waar annotatie naar false met behulp van de IAnnotatieTransformer dan wordt deze methode niet uitgevoerd, hieronder vindt u het codefragment over hoe het IAnnotatieTransformer en gebruik het in testing.xml om het gedrag van de TestNG-annotatie te wijzigen

De implementatie van de CustomAnnotationTransformers gaat hier:

public class CustomAnnotationTransformers implementeert IAnnotationTransformer {public boolean isTestRunning(ITestAnnotation iTestAnnotation) {if (iTestAnnotation.getAlwaysRun()) { return true; } onwaar retourneren; } public void transform (ITestAnnotation annotaties, Class testClasses, Constructor testConstructors, Method testMethods) {if (isTestRunning(annotations)) { annotations.setEnabled(false); } } }

Hier is de luisteraar die we moeten toevoegen aan het testing.xml-bestand

<listeners>
    <listener class-name= "com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

Hoe testng iinvokedmethodlistener implementeren?

Als u een functie wilt implementeren waarbij een bepaalde methode wordt uitgevoerd voor en na elke testmethode van TestNg, dan kan die functie worden geïmplementeerd door de testng IInvokedMethodListener luisteraar.

 

Hier is het codefragment om de functies te implementeren:

pakket com.lambdageeks; import org.testng.IIInvokedMethod; import org.testng.IInvokedMethodListener; import org.testng.ITestResult; public class CustomAnnotationTransformers implementeert IInvokedMethodListener { public void beforeInvocation (IInvokedMethod method, ITestResult testResult) { System.out.println(" ::: Before Method from IInvokedMethodListener wordt geactiveerd voor de testmethode met de naam : "Method + method.getTestest". ) + " ::: "); } public void afterInvocation(IInvokedMethod methode, ITestResult testResult) { System.out.println(" :::: Na methode van IInvokedMethodListener wordt geactiveerd voor de testmethode genaamd : " + method.getTestMethod().getMethodName() + ": :: "); } }

Hier is de testklasse om de functie te testen:

public class TestClassAnnotations { @Test(alwaysRun = true) public void testMethoddummy() { System.out.println("--- Dit is een testmethode die de functie test van IInvokedMethodListener Testng Listener ---"); } }

U moet de TestNG iinvokedmethodlistener vermelden in de listener-tag in testng.xml zoals altijd

<listeners>
    <listener class-name="com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

De uitvoer van de uitvoering zou er als volgt uitzien:

::: Before Method from IInvokedMethodListener wordt geactiveerd voor de testmethode met de naam: testMethoddummy :::

- Dit is een testmethode die de functie van IInvokedMethodListener Testng Listener test -

 :::: Nadat methode van IInvokedMethodListener is geactiveerd voor de testmethode met de naam: testMethoddummy :::

Hoe dataproviders in TestNG te implementeren?

We kunnen de DataProvider implementeren met TestNg in de onderstaande benadering:

openbare klasse DataProviderDemo { @DataProvider (naam = "dpName") openbaar object [][] dataProvidersMethodName () { retourneer nieuw object [][]{{"Lambda"}, {"Geeks"}}; } @Test(dataProvider = "dpName") public void dataproviderDummyTestMethod(String dataValues) { System.out.println("De gegevensparameters met voorbeelden van gegevensproviders: : " + dataValues); } }

Als we de prioriteit van de testmethode niet instellen, in welke volgorde worden de tests dan uitgevoerd in TestNG?

De tests worden uitgevoerd in de alfabetische volgorde van de TestmethodName.

 

Zoals in het onderstaande codefragment:

public class SequenceTest { @Test() public void geeks() { System.out.println("Sequence Test, Method liep: geeks "); } @Test() public void lambda() { System.out.println("Sequentietest, methode uitgevoerd: lambda"); } @Test() public void abc() { System.out.println("Sequentietest , Methode uitgevoerd :abc"); } }

De uitvoer zou er als volgt uitzien:

Sequentietest, methode uitgevoerd: abc

Sequentietest, methode uitgevoerd: geeks

Sequentietest, methode liep: lambda

 

Hoe kunt u uw testscripts parallel uitvoeren?

U kunt uw testscripts uitvoeren met het TestNg XML-bestand door het parallel = "methodes" thread-count = "2 ″, hier worden 2 parallelle cases uitgevoerd, als je meer threads parallel wilt uitvoeren.

<suite name="DummyTest" parallel="methods" thread-count="2" >

<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
</suite>  

Hoe TestNg integreren met GRADLE Build Tool?

U kunt Testng Suite op verschillende manieren geleidelijk uitvoeren:

TestNg Groups uitvoeren met Gradle: U kunt een taak maken in build.gradle-bestand en de useTestNG () en vermeld de onderstaande details tijdens het uitvoeren van de testgroepen.

TestNg Gradle
TestNg interviewvragen en antwoorden-TestNg met Gradle

Testng Default listener uitvoeren met Gradle om een ​​rapport te genereren met de TestNg-bibliotheek

TestNg Standaard luisteraars
TestNg interviewvragen en antwoorden - Testen met Gradle Default-luisteraars

Als u de aangepaste listener wilt gebruiken, kunt u dat in de volgende benadering vermelden:

Testng Gradle Aangepaste luisteraar 1024x497 1
TestNg interviewvragen en antwoorden - TestNG aangepaste luisteraars met Gradle

Hoe voer ik het Testng Runner xml-bestand uit met de opdrachtprompt?

U kunt de locatie TestNg gedownload gebruiken en org.testng.TestNg.testNgRunner.xml vermelden om het xml-bestand van de runner vanaf de opdrachtprompt uit te voeren.

java -cp "/opt/testng-7.1.jar:bin" org.testng.TestNG testngRunner.xml

Hoe TestNg XML te integreren met Maven?

U kunt TestNg integreren met Maven met behulp van de plug-in genaamd maven-surefire-plug-in waar u kunt configureren om het testNgrunner.xml-bestand uit te voeren met behulp van de configuraties:

TestNG Maven-integratie 1024x667 1
TestNg interviewvragen en antwoorden-TestNg-Maven-Surefire Integration

Hoe kun je de TestNg Test-parameter specificeren met TestNg en Maven?

U kunt de Test-parameter specificeren met behulp van de Maven SureFire-plug-in met het TestNg.XML-bestand op de onderstaande manier

TestNg Maven-testparameter 1024x543 1
TestNg Interview vragen en antwoorden-testparameter

Testng sollicitatievragen en antwoorden || Set 2

Wat wordt bedoeld met invocationCount in TestNG?

invocationCount is een testannotatiekenmerk waarmee u het aantal iteraties kunt definiëren dat de testmethode in een enkele uitvoering zal worden uitgevoerd. 

 De bovenstaande test wordt twee keer uitgevoerd, omdat invocationCount wordt vermeld als 2.

@Test(invocationCount = 2) public void testOfInvCount() { System.out.println("Invocation count test in progress"); }

Wat zijn luisteraars in TestNG?

in TestNg zijn de luisteraars in feite interface in Java die u in uw klas moet implementeren. De geïmplementeerde klasse blijft luisteren naar bepaalde gebeurtenissen en voert het specifieke codeblok uit dat aan die gebeurtenis is gekoppeld. Hier wanneer u de interface implementeert, implementeert u uiteindelijk de niet-geïmplementeerde methoden en dat codeblok of de methoden worden uitgevoerd als en wanneer een specifieke gebeurtenis wordt geactiveerd. 

Met de hulp van TestNG-luisteraars kunnen we veel runtime-acties uitvoeren door te luisteren naar een andere gebeurtenis die wordt geactiveerd door de uitvoering van het testscript en hun status, of we kunnen rapportage uitvoeren. We kunnen ook de implementatie van TestNg-annotatie wijzigen.

Noem de verschillen tussen @Factory en @Dataprovider annotaties in TestNg?

@Dataprovider: Wanneer u dezelfde test wilt uitvoeren, maar met verschillende, uiteenlopende sets gegevens in elke run, kunt u de dataprovider-annotatie gebruiken, en zo kunt u de datagestuurde testaanpak bereiken. Hier vindt de uitvoering van de testmethode plaats met behulp van dezelfde klasse-instantie waartoe de testmethode behoort.

@Factory: dit zal alle testmethoden die aanwezig zijn in een testklasse worden uitgevoerd met behulp van afzonderlijke en meerdere instanties van de klasse.

Hoe gebruik je TestNG Reporter Class voor het genereren van logboeken?

U kunt de details en gegevens loggen met behulp van de Reporter-klasse, en deze logboeken worden vastgelegd door het rapport dat wordt gegenereerd door TestNG

Reporter.log ("Logboekbericht");

Hoe afhandeling van uitzonderingen in TestNG uitvoeren?

U kunt het type verwachte uitzondering vermelden in een attribuut met de naam verwachteExcepties met de @test-annotatie; in dit geval markeert TestNg de test als geslaagd.

@Test (verwachteExceptions = numberFormatException.class)

Hoe afhankelijkheidsinjectie te bereiken via TestNg XML?

Met TestNG kunnen we afhankelijkheden tussen verschillende testgroepen injecteren via het TestNG XML-bestand. Waardoor we afhankelijk kunnen zijn van de ene groep van de andere.

Wat zijn de verschillende beweringsbenaderingen voor TestNG?

We kunnen twee soorten beweringen gebruiken met TestNg. 

Zachte beweringen

Harde beweringen 

Noem enkele van de veelgebruikte beweringen met TestNG 

Enkele van de veelgebruikte assertiemethoden in TestNG:

  • assertEquals (boolean actueel, boolean verwacht)
  • assertEqual (String actueel, String verwacht)
  • assertEqual (String actueel resultaat, String verwacht resultaat, String bericht)
  • assertTrue (voorwaarde)
  • assertFalse (voorwaarde)
  • assertFalse (voorwaarde, bericht)
  • assertTrue (voorwaarde, bericht)

Wat versta je onder de beweringen in TestNG?

Er wordt een bewering uitgevoerd om de feitelijke testresultaten te valideren ten opzichte van de verwachte testresultaten. In TestNg kunnen we hard assert of soft assert gebruiken. 

Het verschil tussen Hard assert en soft assert in TestNg

Tijdens het werken met de harde bewering, als we een mislukking krijgen in de beweringstoestand, zullen de volgende teststappen niet worden uitgevoerd en worden ze afgebroken, en uiteindelijk wordt de test gemarkeerd als een mislukte testcase. 

Aan de andere kant neemt de Soft Assert de overweging om alle beweringspunten te valideren, zelfs als er fouten zijn in een van de beweringen. Dat betekent dat de testuitvoering niet wordt afgebroken, zelfs niet als een bewering mislukt.

Soft assertion schrijven in TestNg 

Het onderstaande stukje code geeft de benadering weer van het schrijven van de zachte bewering in TestNG

@Test public void assertion() { SoftAssert softAssertion = new SoftAssert(); //Assertion 1 softAssertion.assetEquals ("exp", "act"); //Assertion 2 softAssertion.assetEquals(123, 123); //Assertion 3 softAssertion.assetEquals ("werkelijke waarde", "verwachte waarde"); // Aan het einde rekening houdend met alle assertiewaarden softAssertion.assetAll(); }

Hoe reguliere expressie te gebruiken in TestNG-groepen?

Een reguliere expressie kan in TestNG worden gebruikt om de groepen uit te voeren die een vergelijkbaar patroon in hun naamgeving hebben. 

Als u bijvoorbeeld alle groepen wilt starten die beginnen met “testX” volgens de naam, dan kunt u de reguliere expressie gebruiken als testX. * In het TestNG XML-bestand.

Testng sollicitatievragen en antwoorden || Set 3

Wat is TestNG?

TestNg vertegenwoordigt in feite "Volgende generatie testen”Is een unit testing framework dat de stroom en volgorde van testautomatisering en automatiseringsscripts regelt door verschillende annotaties met hun functionaliteiten aan te bieden.

Wat zijn de voordelen van TestNg?

  •             Door de verschillende annotaties van Testng kunt u de stroom en volgorde van automatisering en testuitvoering beter beheren.
  •             Testklassen of testscript Methoden parallelle uitvoering kan worden bereikt met TestNg.
  •            TestNg kan eenvoudig worden geïntegreerd met verschillende bouwtools zoals Maven, Gradle. Het kan ook worden geïntegreerd met CICD-tools zoals Jenkins.
  •            TestNG biedt een HTML-rapportagefunctie voor details en kan eenvoudig worden geïntegreerd met andere testrapportageplatforms zoals Allure, Extent Report met functies van TestNG Listeners.
  •           Alle tests kunnen worden geactiveerd door het bestand testng.xml waarin u de uit te voeren testklasse/test/testpakketnaam kunt vermelden.
  •           Datagedreven testen kan met de TestNg DataProvider-annotatie. Parametriseringstests kunnen ook worden uitgevoerd via Testng.xml, zoals tijdens het uitvoeren van cross-browsertests, kunt u de verschillende browsers voor verschillende tests parametriseren. Deze functie helpt bij het bouwen van het Data Driven Framework met TestNG.
  •          TestNg Biedt een manier om een ​​set van een test op te nemen/uit te sluiten van tesngNg.xml met het attribuut opnemen en uitsluiten.
  •          Met TestNg kunt u uw tests en afhankelijkheidsinjectie groeperen tussen de tests.
  •          TestNg biedt veel luisteraars die je kunt bereiken, zoals je kunt aangepaste rapportage doen (IReporter), integratie met verschillende tools (ITestListener), het gedrag van TestNG Test-annotatie tijdens runtime wijzigen met IAnnotationTransformer en nog veel meer.
  •         U kunt de specifieke test overslaan, prioriteit geven aan uw testvolgorde, een tijdgebonden test maken met TestNg Test-annotaties.
  •         U kunt zowel Hard Assertion als Soft Assertion met TestNg gebruiken voor het schrijven van een Assert-statement.
  •         TestNg genereert TestNG-failed.xml na elke testuitvoering, dus u kunt dezelfde gegenereerde TestNG-failed.xml gebruiken om uw mislukte testscripts opnieuw uit te voeren.
  •        TestNg biedt verschillende testannotaties zoals @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest.@VoorSuite,@AfterSuite.
  •        U kunt de verwachte uitzonderingstest uitvoeren met TestNg.
  •        U kunt de mislukte test opnieuw uitvoeren met IretryAnalyzer van Testng 

Hoe doe je activeer en voer het TestNg-testscript uit?

U kunt het TestNg Test-script op verschillende manieren uitvoeren: 

  •       Klik met de rechtermuisknop op Test Class en "uitvoeren als" en selecteer de optie "TestNg Test".
  •       Maak testng.xml en rechts op het bestand en voer het xml-bestand uit.
  •       Als u testNg.xml integreert met de build-tool zoals Maven/Gradle, dan kunt u ook uitvoeren vanuit maven of Gradle.
  •       Als de bouwtool zoals Maven/Gradle is geïntegreerd met CICD, dan kunt u deze uitvoeren vanuit CICD, dat wil zeggen vanuit Jenkins.

Noem de Testng-annotaties die beschikbaar zijn?

De meest gebruikte Testng Test-annotaties zijn:

  • @BeforeSuite
  • @AfterSuite
  • @VoorTest
  • @AfterTest
  • @Voor klas
  • @Na de les
  • @Weerplaza
  • @AfterMethode
  • @WillemII
  • @AfterGroups
  • @Toets

Noem de uitvoeringsvolgorde van TestNg-annotaties?

Vanuit het oogpunt van testuitvoering is hier de onderstaande volgorde voor alle beschikbare TestNg-annotaties:

Voorwaarde Annotaties:

  • @BeforeSuite
  • @VoorTest
  • @Voor klas
  • @Weerplaza
  • Annotaties testen:
  • @Toets
  • Annotaties na conditie: 
  • @AfterSuite
  • @AfterTest
  • @Na de les
  • @AfterMethode

Hoe testuitvoering voor een testscript uitschakelen?

U kunt het ingeschakelde kenmerk gebruiken is gelijk aan false in het @Test annotatiekenmerk zoals hieronder vermeld:

@Test(enabled = false) public void logout(){ System.out.println("Voorbeeldtest"); }

Hoe kun je luisteraars specificeren in TestNG xml?

U kunt het Tesng xml-bestand gebruiken om de luisteraars te vermelden die moeten worden gebruikt als onderdeel van de testscriptuitvoeringen, in de onderstaande benadering:

        

        

...

Wat is de time-outtest in TestNg?

In dit geval betekent de "time-outtest" dat als het testscript langer duurt dan de gespecificeerde tijdsperiode om uit te voeren, testng de test zal afbreken en zal markeren als een mislukte test.

@Test(timeOut = 6000) // deze keer in mulliseconden public void testShouldPass() gooit InterruptedException {Thread.sleep(2000); }

Hoe de verwachte uitzonderingstest bereiken met TestNG?

Als een testmethode een uitzondering genereert, die hetzelfde is als gespecificeerd als onderdeel van het attribuut testannotatie verwachtExcepties, markeert TestNg de test als geslaagd.

@Test(expectedExceptions = ArithmeticException.class) public void TestDivision() { int i = 1 / 0; }

 De bovenstaande testmethode wordt doorstaan ​​omdat deze de uitzondering genereert die door TestNG wordt verwacht.

Wat is het verschil tussen @BeforeTest en @BeforeMethod-annotatie?

@BeforeTest wordt eenmaal uitgevoerd vóór elk van de tests label vermeld in het testng.xml-bestand 

@BeforeMethod wordt uitgevoerd vóór elke testscriptmethode.

Wat is het voordeel van het gebruik van het bestand testng.xml?

Met het testng.xml-bestand kunt u de uitvoeringsstroom regelen met een enkele testsuite of meerdere testsuite in een enkel testng xml-bestand. Enkele van de belangrijkste kenmerken zijn:

  • Met het bestand testng.xml kunnen we testmethoden en testgroepuitvoering uitsluiten en opnemen.
  • U kunt testgegevens/parameters doorgeven via testng.xml.
  • U kunt afhankelijkheid toevoegen tussen testmethoden en ook een groep testmethoden
  • Je kunt de testgevallen prioriteren.
  • Parallelle testuitvoering van testgevallen wordt bereikt.
  • U kunt verschillende testng-listeners implementeren en gebruiken door deze te vermelden in de testng.xml.
  • Als u uw suite uitvoert met testng.xml, dan zal u alleen de test voor de volgende iteratie niet doorstaan ​​door gebruik te maken van TestNG-failed.xml wordt na elke uitvoering gegenereerd.
  • U kunt specifieke groepen tests uitvoeren met: tag van TestNG xml.

Hoeveel soorten afhankelijkheden kunt u bereiken door TestNG te gebruiken?

Er zijn twee soorten afhankelijkheden die we kunnen bereiken met TestNG: 

A. DependsOnMethods: 

Door gebruik te maken van dit dependOnMethods-attribuut, definieert u welke testmethode afhankelijk is van andere testmethoden, dus als de afhankelijke methode mislukt of niet wordt uitgevoerd, zal de afhankelijke testmethode ook niet worden uitgevoerd.

@Test public void loginUserProfile() { System.out.println("Login gebruiker"); } @Test(dependsOnMethods = "loginUserProfile") public void logOutPage_user() { System.out.println("Uitlogpagina voor gebruiker"); }

 Hier is de logOutPage_user-testmethode die zal worden uitgevoerd na de succesvolle uitvoering van de loginUserProfile-test.

B. afhankelijkOnGroups: 

In dit type testafhankelijkheid stelt het ons in staat om de afhankelijkheidsinjectie voor de testmethoden samen te voegen met een groep testmethoden.

De uitvoeringsstroom gebeurt op een zodanige manier dat de testGroup eerst wordt getriggerd en uitgevoerd en vervolgens de afhankelijke testmethode wordt geactiveerd, en eenmaal na succesvolle voltooiing van de groepstest, wordt de afhankelijke testmethode uitgevoerd.

@Test(groups="AtestGroupName") public void testcaseOne() { System.out.println("testcaseOne in process"); } @Test(groups="AtestGroupName") public void testcaseTwo() { System.out.println("testcaseTwo in process"); } @Test(dependsOnGroups="AtestGroupName") public void testcaseThree() { System.out.println("testcaseThree in process"); }

Conclusie: Hiermee sluiten we de lijst af van alle kritische en belangrijke TestNg interviewvragen en antwoorden , om een ​​betere grip op TestNg te krijgen, kunt u de uitgebreide documentatie over TestNg.

Voor meer informatie over het leren uitgebreide Selenium-tutorial die u hier kunt bezoeken.

Laat een bericht achter