43 TestNg-Interviewfragen: Die meisten Anfänger wissen es nicht

In diesem Tutorial werden wir die erschöpfenden Sätze von diskutieren Fragen und Antworten zu kritischen Tests und je nach Schwierigkeitsgrad verteilt, wo man sich besser schnell auf TestNg ausrüsten kann

Diese Sätze von Testng-Interviewfragen werden in den folgenden Modulen oder Sätzen verteilt:

TestNg Interview Fragen - Fortschritt

TestNg Interview Fragen - Mittel

TestNg Interview Fragen - Grundlegend

Testng Interview Fragen und Antworten || Set 1

Wie schließt man eine Gruppe vom Testausführungszyklus aus?

Sie können das Tag "Ausschließen" verwenden, um eine Gruppe von Testfällen von der Ausführung auf die folgende Weise in der XML-Datei "Testng" auszuschließen 

    

        

        

    

Welche Arten von Berichten werden standardmäßig in TestNG generiert?

TestNG generiert nach der Ausführung 4 Arten von Berichten:

  • TestNG-HTML-Bericht
  • E-Mail-fähiger TestNG-Bericht
  • TestNG-Berichts-XML
  • TestNg XML-Bericht fehlgeschlagen

Erwähnen Sie den Unterschied zwischen der TestNG-Testsuite und dem TestNG-Test?

Die TestNG-Testsuite ist eine Sammlung von Testklassen und Testmethoden, die gleichzeitig und parallel aus der TestNG-XML-Datei ausgeführt werden können. 

Andererseits ist die TestNG-Testmethode eine einzelne Testfalldatei oder Testmethode.

Wozu dient das Attribut threadPoolSize mit der Annotation @Test? 

Über das Attribut threadPoolSize können wir einen Thread-Pool mit der angegebenen Größe anhand der Nummer definieren, mit der die Testmethode über mehrere verfügbare Threads ausgeführt werden soll.

Das Attribut wird ignoriert, wenn der invocationCount nicht erwähnt wird.

@Test(threadPoolSize = 3)
öffentlich void testCaseOne(){
System.out.println("testCaseOne in Bearbeitung");
}

Bei der obigen Testmethode wird testCaseOne von den drei verschiedenen Threads aufgerufen.

Was machen alwaysRun-Attribute?

Dieses AlwaysRun-Annotationsattribut wird immer dann verwendet, wenn die Ausführung der Testmethode unabhängig von den abhängigen Parametern, von denen die Testmethode abhängt, fehlschlägt. Wenn Sie „true“ festlegen, müssen Sie festlegen, dass das Attribut „true“ ist.

Welche verschiedenen Hörer sind verfügbar?

  • ITestListener
  • Reporter 
  • ISuiteListener
  • IAnnotationTransformer 
  • IAnnotationTransformer2
  • IchHookable 
  • InvokedMethodListener 
  • IMethodInterceptor 

Was ist der Standardwert für die TestNG-Priorität?

Die TestNG-Priorität hat den Standardwert Null.

Wie kann ich TestNg Failed Tests mit dem Auto Retry-Mechanismus erneut ausführen?

TestNg bietet eine Schnittstelle namens IRetryAnalyzer Listener, in dem Sie die Schnittstelle implementieren können. Führen Sie Ihre fehlgeschlagenen Testskripte automatisch erneut aus, indem Sie die Klasse in der Datei testNg.XML erwähnen. Hier ist der folgende Code zum Implementieren derselben:

TestNg Wiederholen 1024x747 1
Fragen und Antworten zum Testinterview - TestNg Retry Test Script

Im obigen Bereich können Sie die Anzahl der erneuten Versuche und die maximale Anzahl konfigurieren und auch angeben, in welchen Ausnahmen Sie Testskripte erneut ausführen möchten.

public class Retry implementiert IRetryAnalyzer { int retryCounter = 0; // Die maximale Anzahl fehlgeschlagener Ausführungen int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; gib true zurück; } falsch zurückgeben; } }

Ansatz XNUMX: Ausführen von TestNg Failed Tests mithilfe des Auto Retry-Mechanismus

Im folgenden Ansatz können Sie 2 Klassen erstellen, dh eine ist Wiederholen Sie die Klasse Hier können Sie die Logik der Steuerung der Anzahl der Iterationen bei Testfehlern beibehalten, die die Schnittstelle Testng implementieren IRetryAnalyzer.

Eine andere Klasse implementiert im Grunde den anderen Interface-Listener IAnnotationTransformer und implementiert die Methode transformieren die intern mit der vorherigen Klasse interagiert (dh Wiederholen Sie die Klasse)

public class Retry implementiert IRetryAnalyzer { int retryCounter = 0; // Die maximale Anzahl fehlgeschlagener Ausführungen int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; gib true zurück; } falsch zurückgeben; } }

und schließlich die hinzufügen CognitiveRetry-Klasse im Listener für die Datei testng.xml.

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

Wie erreiche ich die Implementierung von TestNG itestlistener?

ITestListener ist eine Schnittstelle in TestNg mit mehreren Methoden (nicht implementiert, da es sich um eine Schnittstelle handelt), die von einer Klasse implementiert werden können. Jede Methode stellt bestimmte Funktionen oder Szenarien dar. Je nach Bedarf können Sie diese Methoden implementieren.

Zum Beispiel onTestFailure ist eine Methode, die Sie implementieren können, wenn Sie Vorgänge ausführen möchten, während eine Testmethode fehlschlägt. Nehmen wir an, Sie möchten den Screenshot im Falle eines Fehlers der Testmethode erfassen, damit Sie die Takescreenshot-Methode in das schreiben können onTestFailure Da der ITestListener eine Schnittstelle ist, überwacht testNg weiterhin die Ereignisse (Testfehler), und bei Testfehlern wird Ihr Screenshot erfasst.

Hier ist die Implementierung der Erfassung von Screenshots, wenn beim Testen des Skripts ein Fehler auftritt:

import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.testng.ITestContext; import org.testng.ITestListener; import org.testng.ITestResult; java.io.File importieren; import java.io.IOException; import java.util.logging.Logger; Die öffentliche Klasse CustomListeners implementiert ITestListener { WebDriver drivers=null; String filePath = "D:\\\\LambdaGeeks\\\\SCREENSHOTS"; @Override public void onTestFailure(ITestResult result) { String testMethodName=String.valueOf(result.getName()).trim(); ITestContext testContext = result.getTestContext(); WebDriver drivers = (WebDriver)testContext.getAttribute("driver"); captureTheScreenShot(testMethodName, Treiber); } public void captureTheScreenShot(String methodName, WebDriver drivers) { File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); /* Jeder Screenshot wird zusammen mit dem Testnamen gespeichert, um eine bessere Korrelation zu gewährleisten */ try { FileUtils.copyFile(scrFile, new File(filePath+methodName+".jpg")); } Catch (IOException e) { e.printStackTrace(); } } public void onFinish(ITestContext context) {} public void onTestStart(ITestResult result) { } public void onTestSuccess(ITestResult result) { } public void onTestSkipped(ITestResult result) { } public void onTestFailedButWithinSuccessPercentage(ITestResult result) { } public void onStart (ITestContext-Kontext) { } }

Außerdem müssen Sie diese Klasse im Listener-Tag in der Datei testng.xml hinzufügen, wie wir es in der vorherigen Frage getan haben.

Wie implementiere ich testng iAnnotationtransformer?

TestNg bietet eine Schnittstelle mit dem Namen IAnnotationTransformer, die eine Methode namens "transform" bereitstellt, die Sie implementieren können und die zur Laufzeit von TestNG ausgelöst wird. Diese Implementierung wird verwendet, um das Testanmerkungsverhalten der Testklasse und der Testmethoden zu ändern

Im folgenden Segment würden wir sehen, wie wir das tun könnten

public class TestClassAnnotations { @Test(alwaysRun = true,dependsOnMethods = "testMethodB") public void testMethodA() { System.out.println("--- Anpassen des Laufzeitverhaltens mit ITestAnnotation ---"); } @Test public void testMethodB() { System.out.println("--- Second TestMethods ---"); Assert.fail(); } }

Wenn wir den obigen Code ausführen, wird standardmäßig nur eine Methode ausgeführt, nämlich testMethodA, und eine andere Methode testMethodB schlägt fehl, da dies absichtlich durch Verwendung der Assert.fail () -Methode fehlschlägt.

Aber wenn wir das ändern Alwaysrun = true Anmerkung zu false unter Verwendung der IAnnotationTransformer dann wird diese Methode nicht ausgeführt. Unten finden Sie das Code-Snippet zur Implementierung des IAnnotationTransformer und verwenden Sie es in der Datei testing.xml, um das Verhalten der TestNG-Annotation zu ändern

Die Implementierung der CustomAnnotationTransformers erfolgt hier:

öffentliche Klasse CustomAnnotationTransformers implementiert IAnnotationTransformer { public boolean isTestRunning(ITestAnnotation iTestAnnotation) { if (iTestAnnotation.getAlwaysRun()) { return true; } falsch zurückgeben; } public void transform (ITestAnnotation annotations, Class testClasses, Constructor testConstructors, Method testMethods) { if (isTestRunning (annotations)) { annotations.setEnabled (false); } } }

Hier ist der Listener, den wir in der Datei testing.xml hinzufügen müssen

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

Wie implementiere ich testng iinvokedmethodlistener?

Wenn Sie eine Funktion implementieren möchten, bei der eine bestimmte Methode vor und nach jeder Testmethode von TestNg ausgeführt wird, kann diese Funktion vom Test implementiert werden InvokedMethodListener Hörer.

 

Hier ist das Code-Snippet zum Implementieren der Funktionen:

Paket com.lambdageeks; import org.testng.IInvokedMethod; import org.testng.IInvokedMethodListener; import org.testng.ITestResult; öffentliche Klasse CustomAnnotationTransformers implementiert IInvokedMethodListener { public void beforeInvocation(IInvokedMethod method, ITestResult testResult) { System.out.println(" ::: Before Method from IInvokedMethodListener is Triggered for the Test Method named as: " + method.getTestMethod().getMethodName( ) + " ::: "); } public void afterInvocation(IInvokedMethod method, ITestResult testResult) { System.out.println(" :::: Nachdem die Methode von IInvokedMethodListener für die Testmethode mit dem Namen ausgelöst wurde: " + method.getTestMethod().getMethodName() + " : :: "); } }

Hier ist die Testklasse zum Testen der Funktion:

public class TestClassAnnotations { @Test(alwaysRun = true) public void testMethoddummy() { System.out.println("--- Dies ist eine Testmethode, die die Funktion von IInvokedMethodListener Testng Listener testet ---"); } }

Sie müssen den TestNG iinvokedmethodlistener wie immer im Listener-Tag in der Datei testng.xml erwähnen

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

Die Ausgabe der Ausführung würde folgendermaßen aussehen:

::: Bevor die Methode von IInvokedMethodListener für die Testmethode mit dem Namen testMethoddummy ::: ausgelöst wird

- Dies ist eine Testmethode, mit der die Funktion von IInvokedMethodListener Testng Listener getestet wird. -

 :::: Nachdem die Methode von IInvokedMethodListener für die Testmethode mit dem Namen testMethoddummy ::: ausgelöst wurde

Wie implementiere ich Datenanbieter in TestNG?

Wir können den DataProvider mithilfe von TestNg im folgenden Ansatz implementieren:

public class DataProviderDemo { @DataProvider(name = "dpName") public Object[][] dataProvidersMethodName() { return new Object[][]{{"Lambda"}, {"Geeks"}}; } @Test(dataProvider = "dpName") public void dataproviderDummyTestMethod(String dataValues) { System.out.println("Die Datenparameter mit Beispielen für Datenanbieter: : " + dataValues); } }

Wenn wir die Priorität der Testmethode nicht festlegen, in welcher Reihenfolge werden die Tests in TestNG ausgeführt?

Die Tests werden in der Reihenfolge der alphabetischen Reihenfolge des TestmethodName ausgeführt.

 

Wie im folgenden Code-Snippet:

public class SequenceTest { @Test() public void geeks() { System.out.println("Sequence Test , Method ran :geeks"); } @Test() public void lambda() { System.out.println("Sequenztest, Methode lief: Lambda"); } @Test() public void abc() { System.out.println("Sequence Test , Method ran :abc"); } }

Die Ausgabe würde folgendermaßen aussehen:

Sequenztest, Methode lief: abc

Sequenztest, Methode lief: Geeks

Sequenztest, Methode lief: Lambda

 

Wie können Sie Ihre Testskripte parallel ausführen?

Sie können Ihre Testskripte mithilfe der TestNg-XML-Datei ausführen, indem Sie die parallel = "Methoden" thread-count = "2", hier werden 2 parallele Fälle ausgeführt, wenn Sie mehrere Threads parallel ausführen möchten.

<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>  

Wie kann ich TestNg in das GRADLE Build Tool integrieren?

Sie können Testng Suite in gradle auf verschiedene Arten ausführen:

So führen Sie TestNg-Gruppen mit Gradle aus: Sie können eine Aufgabe in der Datei build.gradle erstellen useTestNG () und erwähnen Sie die folgenden Details, während Sie die Testgruppen ausführen.

TestNg Gradle
TestNg Interview Fragen und Antworten-TestNg mit Gradle

So führen Sie Testng Default Listener mit Gradle aus, um mithilfe der TestNg-Bibliothek einen Bericht zu erstellen

TestNg Standard-Listener
TestNg Interview Fragen und Antworten - Testen mit Gradle Default Listenern

Wenn Sie den benutzerdefinierten Listener verwenden möchten, können Sie dies im folgenden Ansatz erwähnen:

Testng Gradle Custom Listener 1024x497 1
TestNg Interview Fragen und Antworten-TestNG Benutzerdefinierte Listener mit Gradle

Wie führe ich die XML-Datei Testng Runner über die Eingabeaufforderung aus?

Sie können den Speicherort TestNg Downloaded verwenden und org.testng.TestNg.testNgRunner.xml erwähnen, um die Runner-XML-Datei an der Eingabeaufforderung auszuführen.

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

Wie integriere ich TestNg XML in Maven?

Sie können TestNg mit Maven unter Verwendung des genannten Plugins integrieren Maven-Surefire-Plugin Hier können Sie die Ausführung der Datei testNgrunner.xml mithilfe der folgenden Konfigurationen konfigurieren:

TestNG Maven-Integration 1024x667 1
TestNg Interview Fragen und Antworten-TestNg-Maven-Surefire Integration

Wie können Sie den TestNg-Testparameter mit TestNg und Maven angeben?

Sie können den Test-Parameter mithilfe des Maven SureFire-Plugins mit der TestNg.XML-Datei wie folgt angeben

TestNg Maven TestParameter 1024x543 1
TestNg Interview Fragen und Antworten-Testparameter

Testng Interview Fragen und Antworten || Set 2

Was ist mit invocationCount in TestNG gemeint?

invocationCount ist ein Testanmerkungsattribut, mit dem Sie die Anzahl der Iterationen definieren können, mit denen die Testmethode in einer einzigen Ausführung ausgeführt wird. 

 Der obige Test wird zweimal ausgeführt, da invocationCount als 2 angegeben wird.

@Test(invocationCount = 2) public void testOfInvCount() { System.out.println("Test der Aufrufanzahl läuft"); }

Was sind Listener in TestNG?

In TestNg sind die Listener im Grunde eine Schnittstelle in Java, die Sie in Ihrer Klasse implementieren müssen. Die implementierte Klasse hört weiterhin bestimmte Ereignisse ab und führt den bestimmten Codeblock aus, der diesem Ereignis zugeordnet ist. Wenn Sie die Schnittstelle implementieren, implementieren Sie letztendlich die nicht implementierten Methoden, und dieser Codeblock oder die Methoden werden ausgeführt, wenn ein bestimmtes Ereignis eintritt wird ausgelöst. 

Mithilfe von TestNG-Listenern können wir viele Laufzeitaktionen ausführen, indem wir ein anderes Ereignis abhören, das durch die Ausführung des Testskripts und deren Status ausgelöst wird, oder Berichte erstellen. Außerdem können wir die Implementierung der TestNg-Annotation ändern.

Erwähnen Sie die Unterschiede zwischen den Anmerkungen @Factory und @Dataprovider in TestNg?

@Dataprovider: Wenn Sie den gleichen Test ausführen möchten, aber bei jedem Durchlauf unterschiedliche Datensätze verwenden, können Sie die Dataprovider-Annotation verwenden und so den datengesteuerten Testansatz erreichen. Hier erfolgt die Ausführung der Testmethode unter Verwendung derselben Klasseninstanz, zu der die Testmethode gehört.

@Factory: Hiermit werden alle in einer Testklasse vorhandenen Testmethoden unter Verwendung separater und mehrerer Instanzen der Klasse ausgeführt.

Wie verwende ich die TestNG Reporter-Klasse für die Protokollgenerierung?

Sie können die Details und Daten mithilfe der Reporter-Klasse protokollieren. Diese Protokolle werden von dem von TestNG generierten Bericht erfasst

Reporter.log ("Protokollierungsnachricht");

Wie wird die Ausnahmebehandlung in TestNG durchgeführt?

Sie können den Typ der erwarteten Ausnahme in einem Attribut namens expectedExceptions mit der Annotation @test angeben. In diesem Fall würde TestNg den Test als bestanden markieren.

@Test (expectedExceptions = numberFormatException.class)

Wie erreicht man eine Abhängigkeitsinjektion über TestNg XML?

Mit TestNG können wir Abhängigkeiten zwischen verschiedenen Testgruppen über die TestNG-XML-Datei einfügen. Durch die wir die Abhängigkeit einer Gruppe von einer anderen haben können.

Was sind die verschiedenen Assertionsansätze für TestNG?

Mit TestNg können zwei Arten von Zusicherungen verwendet werden. 

Weiche Behauptungen

Harte Behauptungen 

Erwähnen Sie einige der häufig verwendeten Behauptungen mit TestNG 

Einige der in TestNG weit verbreiteten Assertionsmethoden:

  • assertEquals (Boolescher Wert aktuell, Boolescher Wert erwartet)
  • assertEqual (String aktuell, String erwartet)
  • assertEqual (String tatsächliches Ergebnis, String erwartet Ergebnis, String Nachricht)
  • assertTrue (Bedingung)
  • assertFalse (Bedingung)
  • assertFalse (Bedingung, Nachricht)
  • assertTrue (Bedingung, Nachricht)

Was verstehen Sie unter den Behauptungen in TestNG?

Eine Zusicherung wird durchgeführt, um die tatsächlichen Testergebnisse in Bezug auf die erwarteten Testergebnisse zu validieren. In TestNg können wir Hard Assert oder Soft Assert verwenden. 

Unterschied zwischen Hard Assert und Soft Assert in TestNg

Wenn während der Arbeit mit der harten Zusicherung ein Fehler in der Zusicherungsbedingung auftritt, werden die nachfolgenden Testschritte nicht ausgeführt und abgebrochen. Schließlich wird der Test als fehlgeschlagener Testfall markiert. 

Auf der anderen Seite berücksichtigt der Soft Assert die Validierung aller Assertionspunkte, selbst wenn in einer der Assertions Fehler vorliegen. Das bedeutet, dass die Testausführung auch dann nicht abgebrochen wird, wenn eine Zusicherung fehlschlägt.

So schreiben Sie eine weiche Behauptung in TestNg 

Der folgende Code gibt den Ansatz zum Schreiben der weichen Behauptung in TestNG an

@Test public void assertion() { SoftAssert softAssertion = new SoftAssert(); //Assertion 1 softAssertion.assertEquals("exp", "act"); //Behauptung 2 softAssertion.assertEquals(123, 123); //Assertion 3 softAssertion.assertEquals("tatsächlicher Wert", "erwarteter Wert"); // Am Ende unter Berücksichtigung aller Behauptungswerte softAssertion.assertAll(); }

Wie verwende ich reguläre Ausdrücke in TestNG-Gruppen?

In TestNG kann ein regulärer Ausdruck verwendet werden, um die Gruppen auszuführen, deren Benennung ein ähnliches Muster aufweist. 

Wenn Sie beispielsweise alle Gruppen ausführen möchten, die mit "testX" gemäß dem betreffenden Namen beginnen, können Sie den regulären Ausdruck als testX. * In der TestNG-XML-Datei verwenden.

Testng Interview Fragen und Antworten || Set 3

Was ist TestNG?

TestNg steht im Grunde für “Testen der nächsten Generation”Ist ein Unit-Test-Framework, das den Ablauf und die Reihenfolge von Testautomatisierung und Automatisierungsskripten steuert, indem verschiedene Anmerkungen mit ihren Funktionen bereitgestellt werden.

Was sind die Vorteile von TestNg?

  •             Durch die verschiedenen Anmerkungen von Testng können Sie den Ablauf und die Reihenfolge der Automatisierung und Testausführung besser steuern.
  •             Mit TestNg kann eine parallele Ausführung von Testklassen oder Testskriptmethoden erreicht werden.
  •            TestNg kann einfach in verschiedene Build-Tools wie Maven, Gradle integriert werden. Außerdem kann es in CICD-Tools wie Jenkins integriert werden.
  •            TestNG bietet eine detaillierte HTML-Berichtsfunktion und lässt sich leicht in andere Testberichtsplattformen wie Allure, Extent Report mit Funktionen von TestNG Listeners integrieren.
  •           Alle Tests können durch die Datei testng.xml ausgelöst werden, in der Sie den Namen der auszuführenden Testklasse/Test/Testpaket angeben können.
  •           Datengesteuertes Testen kann mit der TestNg DataProvider-Annotation durchgeführt werden. Auch Parametrisierungstests können über Testng.xml durchgeführt werden, z. B. können Sie während der Durchführung von Cross-Browser-Tests die verschiedenen Browser für verschiedene Tests parametrisieren. Diese Funktion hilft beim Erstellen des Data Driven Framework mit TestNG.
  •          TestNg Bietet eine Möglichkeit zum Einschließen/Ausschließen eines Testsatzes aus tesngNg.xml mit Include- und Exclude-Attribut.
  •          Mit TestNg können Sie Ihre Tests und die Abhängigkeitsinjektion zwischen den Tests gruppieren.
  •          TestNg bietet viele Listener, mit denen Sie viele Dinge erreichen können, z. B. benutzerdefinierte Berichte (IReporter), Integration mit verschiedenen Tools (ITestListener), Änderung des Verhaltens von TestNG-Testannotationen zur Laufzeit mit IAnnotationTransformer und vieles mehr.
  •         Sie können den spezifischen Test überspringen, Ihre Testreihenfolge priorisieren und einen zeitgebundenen Test mit TestNg-Testanmerkungen erstellen.
  •         Sie können Hard Assertion sowie Soft Assertion mit TestNg zum Schreiben von Assert-Anweisungen verwenden.
  •         TestNg generiert TestNG-failed.xml nach jeder Testausführung, sodass Sie dieselbe generierte TestNG-failed.xml verwenden können, um Ihre fehlgeschlagenen Testskripts erneut auszuführen.
  •        TestNg bietet verschiedene Testannotationen wie @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest.@VorSuite,@AfterSuite.
  •        Sie können den erwarteten Ausnahmetest mit TestNg ausführen.
  •        Sie können den fehlgeschlagenen Test mit IretryAnalyzer von Testng erneut ausführen 

How do you das TestNg-Testskript auslösen und ausführen?

Sie können das TestNg-Testskript auf verschiedene Arten ausführen: 

  •       Klicken Sie mit der rechten Maustaste auf Testklasse und „Ausführen als“ und wählen Sie die Option „TestNg Test“.
  •       Erstellen Sie testng.xml und direkt in der Datei und führen Sie die XML-Datei aus.
  •       Wenn Sie testNg.xml mit dem Build-Tool wie Maven/Gradle integrieren, können Sie es auch von Maven oder Gradle ausführen.
  •       Wenn das Build-Tool wie Maven/Gradle in CICD integriert ist, können Sie es von CICD ausführen, dh von Jenkins.

Geben Sie die verfügbaren Testng-Anmerkungen an.

Die am häufigsten verwendeten Testng-Testanmerkungen sind:

  • @BeforeSuite
  • @ AfterSuite
  • @BeforeTest
  • @ AfterTest
  • @Vor dem Unterricht
  • @Nach dem Unterricht
  • @BeforeMethod
  • @ AfterMethod
  • @BeforeGroups
  • @ AfterGroups
  • @Prüfung

Erwähnen Sie die Ausführungssequenz für TestNg-Anmerkungen?

Vom Standpunkt der Testausführung aus ist hier die folgende Reihenfolge für alle verfügbaren TestNg-Anmerkungen:

Voraussetzungen Anmerkungen:

  • @BeforeSuite
  • @BeforeTest
  • @Vor dem Unterricht
  • @BeforeMethod
  • Testanmerkungen:
  • @Prüfung
  • Anmerkungen zur Nachbedingung: 
  • @ AfterSuite
  • @ AfterTest
  • @Nach dem Unterricht
  • @ AfterMethod

Wie deaktiviere ich die Testausführung für ein Testskript?

Sie können das aktivierte Attribut verwenden, das im Annotationsattribut @Test wie unten angegeben gleich false ist:

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

Wie können Sie Listener in TestNG xml angeben?

Sie können die Tesng-XML-Datei verwenden, um die Listener zu erwähnen, die als Teil der Testskriptausführungen verwendet werden sollen.

        

        

...

Was ist der Timeout-Test in TestNg?

In diesem Fall bedeutet der "Timeout-Test", dass testng den Test abbricht und als fehlgeschlagener Test markiert, wenn die Ausführung des Testskripts länger als der angegebene Zeitraum dauert.

@Test(timeOut = 6000) // diesmal in Millisekunden public void testShouldPass() throws InterruptedException { Thread.sleep(2000); }

Wie erreiche ich den Test für erwartete Ausnahmen mit TestNG?

Wenn eine Testmethode eine Ausnahme auslöst, die mit der im Attribut "ExpectedExceptions" der Testanmerkung angegebenen Ausnahme identisch ist, markiert TestNg den Test als bestanden.

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

 Die obige Testmethode wird übergeben, da sie die von TestNG erwartete Ausnahme auslöst.

Was ist der Unterschied zwischen der Annotation @BeforeTest und @BeforeMethod?

@BeforeTest wird vor jedem Test einmal ausgeführt Etikett in der Datei testng.xml erwähnt 

@BeforeMethod wird vor jeder einzelnen Testskriptmethode ausgeführt.

Was ist der Vorteil der Verwendung der Datei testng.xml?

Mit der Datei testng.xml können Sie den Ausführungsfluss mit einer einzelnen Testsuite oder mehreren Testsuiten in einer einzelnen Testng-XML-Datei steuern. Einige der wichtigen Funktionen sind:

  • Die Datei testng.xml ermöglicht es uns, Testmethoden und die Ausführung von Testgruppen auszuschließen und einzuschließen.
  • Sie können Testdaten/Parameter über testng.xml übergeben.
  • Sie können Abhängigkeiten zwischen Testmethoden und auch einer Gruppe von Testmethoden hinzufügen
  • Sie können die Testfälle priorisieren.
  • Eine parallele Testausführung von Testfällen wird erreicht.
  • Sie können verschiedene testng-Listener implementieren und verwenden, indem Sie diese in der testng.xml erwähnen.
  • Wenn Sie Ihre Suite mit testng.xml ausführen, werden Sie den Test für die nächste Iteration nur fehlschlagen, indem Sie TestNG-failed.xml verwenden, das nach jeder Ausführung generiert wird.
  • Sie können bestimmte Gruppen von Tests mit ausführen -Tag von TestNG xml.

Wie viele Arten von Abhängigkeiten können Sie mit TestNG erreichen?

Es gibt zwei Arten von Abhängigkeiten, die wir mit TestNG erreichen können: 

A. DependsOnMethods: 

Mit diesem Attribut abhängige Methode definieren Sie, welche Testmethode von anderen Testmethoden abhängig ist. Wenn die abhängige Methode fehlschlägt oder nicht ausgeführt wird, wird auch die abhängige Testmethode nicht ausgeführt.

@Test public void loginUserProfile() { System.out.println("Benutzer anmelden"); } @Test(dependsOnMethods = "loginUserProfile") public void logOutPage_user() { System.out.println("Logout-Seite für Benutzer"); }

 Hier ist die Testmethode logOutPage_user, die nach erfolgreicher Ausführung des Tests loginUserProfile ausgeführt wird.

B. hängt von Gruppen ab: 

Bei dieser Art von Testabhängigkeit können wir die Abhängigkeitsinjektion für die Testmethoden mit einer Gruppe von Testmethoden verknüpfen.

Der Ausführungsfluss erfolgt so, dh die Testgruppe wird zuerst ausgelöst und ausgeführt, und dann wird die abhängige Testmethode ausgelöst, und einmal nach erfolgreichem Abschluss des Gruppentests wird die abhängige Testmethode ausgeführt.

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

Fazit: Damit schließen wir die Liste aller kritischen und wichtigen TestNg Interview Fragen und Antworten Um TestNg besser in den Griff zu bekommen, können Sie die Vollständige Dokumentation zu TestNg.

Um mehr über das erfahren Ein ausführliches Selenium-Tutorial finden Sie hier.

Hinterlasse einen Kommentar