43 TestNg Intervista Domande: La maggior parte dei principianti non sa

In questo tutorial discuteremo i set esaustivi di Domande e risposte dell'intervista di Critical TestNg e distribuiti a seconda del livello di difficoltà, dove puoi attrezzarti al meglio velocemente su TestNg

Questi set di domande di intervista Testng sono distribuiti nei seguenti moduli o set:

Domande di intervista TestNg - Advance

Domande di intervista TestNg - Intermedio

Domande di intervista TestNg - Base

Domande e risposte dell'intervista Testng || Imposta 1

Come si esclude un gruppo dal ciclo di esecuzione del test?

È possibile utilizzare il tag di esclusione per escludere un gruppo di casi di test dall'esecuzione nel modo seguente nel file xml Testng 

    

        

        

    

Quali sono i tipi di report generati in TestNG per impostazione predefinita?

TestNG genera 4 tipi di report dopo l'esecuzione, che sono:

  • Rapporto HTML di TestNG
  • TestNG Report in grado di inviare e-mail
  • TestNG Rapporto XML
  • TestNg Rapporto XML non riuscito

Menzionate la differenza tra la suite di test TestNG e il test TestNG?

TestNG test suite è la raccolta di classi di test e metodi di test che possono essere eseguiti simultaneamente e parallelamente dal file XML TestNG. 

D'altra parte, il metodo di test TestNG è un singolo file di caso di test o metodo di test.

Qual è l'uso dell'attributo threadPoolSize con l'annotazione @Test 

Tramite l'attributo threadPoolSize possiamo definire un pool di thread con la dimensione specificata in base al numero per il metodo di test da eseguire tramite più thread disponibili.

L'attributo viene ignorato se invocationCount non viene menzionato.

@Test(threadPoolSize = 3)
test vuoto pubblicoCaseOne(){
System.out.println("testCaseOne in corso");
}

Nel metodo di test sopra, testCaseOne verrà richiamato dai tre diversi thread.

Cosa fanno gli attributi alwaysRun?

Questo attributo di annotazione sempreRun viene utilizzato ogni volta che si desidera eseguire il metodo di test, indipendentemente dai parametri dipendenti da cui dipende il metodo di test, fallisce. Se imposti su true, devi impostare l'attributo su true.

Quali sono i diversi ascoltatori disponibili?

  • ITest Listener
  • Reporter 
  • ISuite Listener
  • IAnotationTransformer 
  • IAnnotationTransformer2
  • Collegabile 
  • IInvokedMethodListener 
  • ImetodoIntercettore 

Qual è il valore predefinito per la priorità TestNG?

La priorità TestNG ha il valore predefinito zero.

Come rieseguire i test non riusciti di TestNg utilizzando il meccanismo di ripetizione automatica?

TestNg fornisce un'interfaccia chiamata come IRetryAnalyzer listener che puoi implementare l'interfaccia auto riesegui i tuoi script Failed Test menzionando la classe nel file testNg.XML, Ecco il codice seguente per implementare lo stesso:

TestNg Riprova 1024x747 1
Domande e risposte dell'intervista TestNg - TestNg Retry Test Script

Nell'area sopra è possibile configurare il numero di tentativi, i conteggi massimi e inoltre è possibile indicare in quali eccezioni si desidera rieseguire gli script di test.

public class Retry implementa IRetryAnalyzer { int retryCounter = 0; // Il numero massimo di esecuzioni non riuscite int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; restituisce vero; } restituisce falso; } }

Approccio due: come rieseguire i test non riusciti di TestNg utilizzando il meccanismo di ripetizione automatica

Nell'approccio seguente puoi costruire 2 classi, cioè una è Riprova la lezione dove è possibile mantenere la logica di controllo del numero di iterazioni in caso di test falliti che implementerà l'interfaccia Testng IRetryAnalyzer.

Un'altra classe è fondamentalmente quella che implementerà l'altro listener dell'interfaccia IAnnotationTransformer e implementerà il metodo trasformare che interagisce internamente con la classe precedente (es Riprova la lezione)

public class Retry implementa IRetryAnalyzer { int retryCounter = 0; // Il numero massimo di esecuzioni non riuscite int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; restituisce vero; } restituisce falso; } }

e infine aggiungi il file CognitiveRetry classe nel listener per il file testng.xml.

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

Come ottenere l'implementazione di itestlistener di TestNG?

ITestListener è un'interfaccia in TestNg che ha più metodi (non implementati poiché è un'interfaccia) che possono essere implementati da una classe. Ogni metodo rappresenta funzionalità o scenari specifici, quindi a seconda delle esigenze è possibile implementare tali metodi.

Per un esempio su TestFallito è un metodo che puoi implementare dove vuoi eseguire qualsiasi operazione mentre qualsiasi metodo di test fallisce, diciamo che vuoi catturare lo screenshot in caso di errori del metodo di test, quindi puoi scrivere il metodo takescreenshot all'interno del su TestFallito e poiché ITestListener è un'interfaccia, testNg continuerà ad ascoltare gli eventi (errori di test) e ogni volta che si verificano errori di test, lo screenshot verrà catturato.

Ecco l'implementazione dell'acquisizione di screenshot ogni volta che lo script di test incontra un errore:

importare org.apache.commons.io.FileUtils; importa org.openqa.selenium.OutputType; importa org.openqa.selenium.TakesScreenshot; importare org.openqa.selenium.WebDriver; importa org.testng.ITestContext; importa org.testng.ITestListener; importare org.testng.ITestResult; importare java.io.File; import java.io.IOException; import java.util.logging.Logger; la classe pubblica CustomListerners implementa ITestListener { WebDriver driver=null; String filePath = "D:\\\\LambdaGeeks\\\\SCREENSHOTS"; @Override public void onTestFailure(ITestResult result) { String testMethodName=String.valueOf(result.getName()).trim(); ITestContext testContext = result.getTestContext(); Driver WebDriver = (WebDriver)testContext.getAttribute("driver"); captureTheScreenShot(testMethodName, driver); } public void captureTheScreenShot(String nomemetodo, driver WebDriver) { File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); /* Ogni screenshot verrà salvato insieme al nome del test per avere una migliore correlazione */ prova { FileUtils.copyFile(scrFile, new File(filePath+methodName+".jpg")); } catch (IOException e) { e.printStackTrace(); } } public void onFinish(contesto ITestContext) {} public void onTestStart(risultato ITestResult) { } public void onTestSuccess(risultato ITestResult) { } public void onTestSkipped(risultato ITestResult) { } public void onTestFailedButWithinSuccessPercentage(risultato ITestResult) { } public void onStart (Contesto ITestContext) { } }

Inoltre, è necessario aggiungere questa classe nel tag listener nel file testng.xml come abbiamo fatto nella domanda precedente.

Come implementare testng iAnnotationtransformer?

TestNg fornisce un'interfaccia denominata IAnnotationTransformer che fornisce un metodo chiamato "transform" che è possibile implementare e che verrebbe attivato in runtime da TestNG, questa implementazione viene utilizzata per modificare il comportamento di annotazione del test della classe di test e dei metodi di test

Nel segmento sottostante vedremmo come potremmo farlo

public class TestClassAnnotations { @Test(alwaysRun = true,dependsOnMethods = "testMethodB") public void testMethodA() { System.out.println("--- Personalizzazione del runtime comportamentale con ITestAnnotation ---"); } @Test public void testMethodB() { System.out.println("--- Second TestMethods ---"); Assert.fail(); } }

Per impostazione predefinita, se eseguiamo il codice sopra, verrà eseguito solo un metodo che è testMethodA e un altro metodo testMethodB fallirà perché stiamo intenzionalmente fallendo usando il metodo Assert.fail ().

Ma se cambiamo il file Alwaysrun = vero annotazione su false utilizzando il IAnotationTransformer quindi questo metodo non verrà eseguito, di seguito è riportato lo snippet di codice su come implementare il IAnotationTransformer e usalo nel testing.xml per modificare il comportamento dell'annotazione TestNG

L'implementazione di CustomAnnotationTransformers va qui:

public class CustomAnnotationTransformers implementa IAnnotationTransformer { public boolean isTestRunning(ITestAnnotation iTestAnnotation) { if (iTestAnnotation.getAlwaysRun()) { return true; } restituisce falso; } public void transform(annotazioni ITestAnnotation, Class testClasses, Costruttore testConstructors, Metodo testMethods) { if (isTestRunning(annotations)) { annotations.setEnabled(false); } } }

Ecco l'ascoltatore che dobbiamo aggiungere nel file testing.xml

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

Come implementare testng iinvokedmethodlistener?

Se vuoi implementare una funzionalità in cui un certo metodo verrà eseguito prima e dopo ogni metodo Test di TestNg, allora quella funzione potrebbe essere implementata dal testng IInvokedMethodListener ascoltatore.

 

Ecco lo snippet di codice per implementare le funzionalità:

pacchetto com.lambdageeks; import org.testng.IInvokedMethod; import org.testng.IInvokedMethodListener; import org.testng.ITestResult; public class CustomAnnotationTransformers implementa IInvokedMethodListener { public void beforeInvocation(IInvokedMethod method, ITestResult testResult) { System.out.println(" ::: Il metodo Before di IInvokedMethodListener viene attivato per il metodo di test denominato : " + method.getTestMethod().getMethodName( ) + " ::: "); } public void afterInvocation(Metodo IInvokedMethod, ITestResult testResult) { System.out.println(" :::: Dopo il metodo di IInvokedMethodListener viene attivato per il metodo di test denominato : " + method.getTestMethod().getMethodName() + " : :: "); } }

Ecco la classe di test per testare la funzionalità:

public class TestClassAnnotations { @Test(alwaysRun = true) public void testMethoddummy() { System.out.println("--- Questo è un metodo di test, testando la funzionalità di IInvokedMethodListener Testng Listener ---"); } }

Devi menzionare TestNG iinvokedmethodlistener nel tag listener in testng.xml come sempre

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

L'output dell'esecuzione sarebbe simile a questo:

::: Prima che il metodo da IInvokedMethodListener venga attivato per il metodo di test denominato: testMethoddummy :::

- Questo è un metodo di prova, che verifica la funzionalità di IInvokedMethodListener Testng Listener -

 :::: Dopo che il metodo di IInvokedMethodListener è stato attivato per il metodo di test denominato: testMethoddummy :::

Come implementare i fornitori di dati in TestNG?

Possiamo implementare il DataProvider utilizzando TestNg nell'approccio seguente:

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("I parametri di dati con esempi di fornitori di dati: : " + dataValues); } }

Se non impostiamo la priorità del metodo di test in quale ordine vengono eseguiti i test in TestNG?

I test vengono eseguiti nell'ordine alfabetico di TestmethodName ..

 

Come nello snippet di codice seguente:

public class SequenceTest { @Test() public void geeks() { System.out.println("Sequence Test, Metodo eseguito: geeks"); } @Test() public void lambda() { System.out.println("Sequence Test, Metodo eseguito: lambda "); } @Test() public void abc() { System.out.println("Sequence Test, Metodo eseguito:abc"); } }

L'output sarebbe simile a questo:

Test di sequenza, metodo eseguito: abc

Sequence Test, Method ran: geeks

Test di sequenza, metodo eseguito: lambda

 

Come eseguire gli script di test in parallelo?

È possibile eseguire gli script di test utilizzando il file XML TestNg menzionando il file parallel = "metodi" thread-count = "2", qui verranno eseguiti 2 casi paralleli, se si desidera eseguire più thread in parallelo.

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

Come integrare TestNg con GRADLE build Tool?

Puoi eseguire Testng Suite in gradle in diversi modi:

Come eseguire i gruppi TestNg usando Gradle: Puoi creare un'attività nel file build.gradle può menzionare il file useTestNG () e menzionare i dettagli seguenti durante l'esecuzione dei gruppi di test.

Test Ng Gradle
TestNg Intervista Domande e risposte-TestNg con Gradle

Come eseguire il listener predefinito di Testng con Gradle per generare report utilizzando la libreria TestNg

TestNg Listener predefiniti
Domande e risposte dell'intervista TestNg- Testng con ascoltatori predefiniti Gradle

Se desideri utilizzare il listener personalizzato, puoi menzionarlo nello stesso approccio:

Testng Gradle Ascoltatore personalizzato 1024x497 1
TestNg Interview Domande e risposte-TestNG ascoltatori personalizzati con Gradle

Come eseguire il file xml Testng Runner utilizzando il prompt dei comandi?

Puoi usare TestNg Downloaded location e menzionare org.testng.TestNg.testNgRunner.xml per eseguire il file xml runner dal prompt dei comandi.

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

Come integrare TestNg XML con Maven?

Puoi integrare TestNg con Maven con l'uso del plugin chiamato plug-in-sicuro dove puoi configurare per eseguire il file testNgrunner.xml utilizzando le configurazioni:

Integrazione TestNG Maven 1024x667 1
TestNg Interview Domande e risposte-TestNg-Maven-Surefire Integration

Come puoi specificare il parametro TestNg Test usando TestNg e Maven?

Puoi specificare il parametro Test utilizzando il plug-in Maven SureFire con il file TestNg.XML nel modo seguente

TestNg Maven TestParametro 1024x543 1
TestNg Intervista Domande e risposte-Test parametro

Domande e risposte dell'intervista Testng || Imposta 2

Cosa si intende per invocationCount in TestNG?

invocationCount è un attributo di annotazione di test mediante il quale è possibile definire il numero di iterazioni che il metodo di test verrà eseguito in una singola esecuzione. 

 Il test precedente verrà eseguito due volte poiché invocationCount è indicato come 2.

@Test(invocationCount = 2) public void testOfInvCount() { System.out.println("Test conteggio chiamate in corso"); }

Cosa sono gli ascoltatori in TestNG?

in TestNg i listener sono fondamentalmente l'interfaccia in Java che devi implementare nella tua classe. La classe implementata continuerà ad ascoltare determinati eventi ed esegue il blocco di codice specifico associato a quell'evento.Qui quando si implementa l'interfaccia si implementano infine i metodi non implementati e quei blocchi di codice oi metodi verranno eseguiti come e quando evento specifico viene attivato. 

Con l'aiuto dei listener di TestNG, possiamo eseguire molte azioni di runtime ascoltando un evento diverso attivato dall'esecuzione dello script di test e dal loro stato, oppure possiamo eseguire rapporti. Inoltre, possiamo modificare l'implementazione dell'annotazione TestNg.

Menzionare le differenze tra le annotazioni @Factory e @Dataprovider in TestNg?

@Dataprovider: quando si desidera eseguire lo stesso test, ma con set di dati diversi in ogni esecuzione, è possibile utilizzare l'annotazione del provider di dati e in questo modo è possibile ottenere l'approccio di test basato sui dati. In questo caso l'esecuzione del metodo di test avviene utilizzando la stessa istanza della classe a cui appartiene il metodo di test.

@Factory: verranno eseguiti tutti i metodi di test presenti all'interno di una classe di test utilizzando istanze separate e multiple della classe.

Come utilizzare TestNG Reporter Class per la generazione del registro?

È possibile registrare i dettagli e i dati utilizzando la classe Reporter e questi log verranno acquisiti dal report generato da TestNG

Reporter.log ("Messaggio di registrazione");

Come eseguire la gestione delle eccezioni in TestNG?

È possibile menzionare il tipo di eccezione prevista in un attributo chiamato expectedExceptions con l'annotazione @test; in questo caso, TestNg contrassegnerebbe il test come superato.

@Test (expectedExceptions = numberFormatException.class)

Come ottenere l'inserimento delle dipendenze tramite TestNg XML?

TestNG ci consente di iniettare dipendenze tra diversi gruppi di test tramite il file XML TestNG. Attraverso il quale possiamo avere la dipendenza di un gruppo da un altro.

Quali sono i vari approcci di asserzione per TestNG?

Possiamo usare due tipi di asserzioni con TestNg. 

Affermazioni morbide

Affermazioni dure 

Menziona alcune delle affermazioni comunemente usate con TestNG 

Alcuni dei metodi di asserzione ampiamente utilizzati in TestNG:

  • assertEquals (booleano effettivo, booleano previsto)
  • assertEqual (stringa effettiva, stringa prevista)
  • assertEqual (risultato effettivo stringa, risultato atteso stringa, messaggio stringa)
  • assertTrue (condizione)
  • assertFalse (condizione)
  • assertFalse (condition, message)
  • assertTrue (condizione, messaggio)

Cosa capisci dalle affermazioni in TestNG?

Viene eseguita un'asserzione per convalidare i risultati effettivi del test rispetto ai risultati del test attesi. In TestNg, possiamo usare hard assert o soft assert. 

Differenza tra Hard assert e soft assert in TestNg

Mentre si lavora con l'asserzione hard, se nel caso in cui si ottenga un errore nella condizione di asserzione, i passaggi del test successivi non verranno eseguiti e verranno interrotti, e alla fine il test verrà contrassegnato come caso di test fallito. 

Mentre d'altra parte il Soft Assert prende in considerazione di convalidare tutti i punti di asserzione anche se ci sono errori in una qualsiasi delle asserzioni. Ciò significa che l'esecuzione del test non viene interrotta anche se un'asserzione fallisce.

Come scrivere una soft assertion in TestNg 

La parte di codice sottostante fornisce l'approccio per scrivere l'asserzione soft in TestNG

@Test public void assertion() { SoftAssert softAssertion = new SoftAssert(); //Assertion 1 softAssertion.assertEquals("exp", "act"); //asserzione 2 softAssertion.assertEquals(123, 123); //Assertion 3 softAssertion.assertEquals("valore effettivo", "valore atteso"); // Alla fine considerando tutti i valori di asserzione softAssertion.assertAll(); }

Come utilizzare l'espressione regolare nei gruppi TestNG?

Un'espressione regolare può essere utilizzata in TestNG per eseguire i gruppi che hanno un modello simile nella loro denominazione. 

Ad esempio, se si desidera eseguire tutti i gruppi che iniziano con "testX" in base al nome, è possibile utilizzare l'espressione regolare come testX. * Nel file XML TestNG.

Domande e risposte dell'intervista Testng || Imposta 3

Cos'è TestNG?

TestNg rappresenta fondamentalmente "Testare la prossima generazione"È un framework di unit test che controlla il flusso e l'ordine dell'automazione dei test e degli script di automazione fornendo varie annotazioni con le loro funzionalità.

Quali sono i vantaggi di TestNg?

  •             Attraverso le varie annotazioni di Testng, puoi controllare il flusso e l'ordine dell'automazione e dell'esecuzione del test con un approccio migliore.
  •             Classi di test o metodi di script di test L'esecuzione parallela può essere ottenuta con TestNg.
  •            TestNg può essere facilmente integrato con diversi strumenti di costruzione come Maven, Gradle. Inoltre, può essere integrato con strumenti CICD come Jenkins.
  •            TestNG fornisce dettagli sulla funzionalità di segnalazione HTML e si integra facilmente con altre piattaforme di segnalazione di test come Allure, Extent Report con le funzionalità di TestNG Listeners.
  •           Tutti i test possono essere attivati ​​dal file testng.xml in cui è possibile menzionare il nome della classe di test/test/pacchetto di test da eseguire.
  •           I test basati sui dati possono essere eseguiti con l'annotazione TestNg DataProvider. Inoltre, i test di parametrizzazione possono essere eseguiti anche tramite Testng.xml, ad esempio durante l'esecuzione di test su più browser, è possibile parametrizzare i diversi browser per test diversi. Questa funzione aiuta a costruire il Data Driven Framework con TestNG.
  •          TestNg Fornisce un modo per includere/escludere un set di un test da tesngNg.xml con l'attributo include ed exclude.
  •          Con TestNg, puoi raggruppare i tuoi test e l'iniezione di dipendenze tra i test.
  •          TestNg fornisce a molti ascoltatori coloro che possono ottenere molte cose come la creazione di report personalizzati (IReporter), l'integrazione con strumenti diversi (ITestListener), Modifica del comportamento dell'annotazione di test TestNG in runtime con IAnnotationTransformer e molti altri.
  •         Puoi saltare il test specifico, dare priorità al tuo ordine di test, creare un test con scadenza con le annotazioni TestNg Test.
  •         È possibile utilizzare Hard Assertion e Soft Assertion con TestNg per scrivere l'istruzione Assert.
  •         TestNg genera TestNG-failed.xml dopo ogni esecuzione di Test, quindi puoi utilizzare lo stesso TestNG-failed.xml generato per rieseguire gli script di test non riusciti.
  •        TestNg fornisce varie annotazioni di test come @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest.@PrimaSuite,@Dopo Suite.
  •        È possibile eseguire l'eccezione prevista Test con TestNg.
  •        È possibile eseguire nuovamente il test non riuscito con IretryAnalyzer di Testng 

Come attivare ed eseguire lo script di test TestNg?

Puoi eseguire lo script TestNg Test in diversi modi: 

  •       Fare clic con il pulsante destro del mouse su Classe di test ed "Esegui come" e selezionare l'opzione "TestNg Test".
  •       Crea testng.xml e direttamente sul file ed esegui il file xml.
  •       Se integri testNg.xml con lo strumento di compilazione come Maven/Gradle, puoi eseguire anche da Maven o Gradle.
  •       Se lo strumento di compilazione come Maven/Gradle è integrato con CICD, è possibile eseguire da CICD, ovvero da Jenkins.

Indicare le annotazioni Testng disponibili?

Le annotazioni di test Testng utilizzate principalmente sono:

  • @Prima Suite
  • @Aftersuite
  • @Prima del test
  • @DopoTest
  • @Prima della lezione
  • @Dopo la lezione
  • @PrimaMetodo
  • @DopoMetodo
  • @PrimaGruppi
  • @DopoGruppi
  • @Test

Menzionare la sequenza di esecuzione delle annotazioni TestNg?

Dal punto di vista dell'esecuzione del test, ecco la sequenza seguente per tutte le annotazioni TestNg disponibili:

Annotazioni preliminari:

  • @Prima Suite
  • @Prima del test
  • @Prima della lezione
  • @PrimaMetodo
  • Annotazioni di prova:
  • @Test
  • Annotazioni postCondizioni: 
  • @Aftersuite
  • @DopoTest
  • @Dopo la lezione
  • @DopoMetodo

Come disabilitare l'esecuzione del test per uno script di test?

È possibile utilizzare l'attributo abilitato è uguale a falso nell'attributo di annotazione @Test come indicato di seguito:

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

Come puoi specificare i listener in TestNG xml?

È possibile utilizzare il file xml Tesng per menzionare gli ascoltatori da utilizzare come parte delle esecuzioni degli script di test, nell'approccio seguente:

        

        

...

Cos'è il test di timeout in TestNg?

In questo caso, il "test di timeout" significa che, se nel caso in cui lo script di test impiega più tempo per essere eseguito rispetto al periodo di tempo specificato, testng interromperà il test e verrà contrassegnato come test non riuscito.

@Test(timeOut = 6000) // questa volta in mullisecondi public void testShouldPass() genera InterruptedException { Thread.sleep(2000); }

Come ottenere il test di eccezione previsto con TestNG?

Se un metodo Test genera un'eccezione, che è la stessa specificata come parte dell'attributo expectedExceptions dell'annotazione del test, TestNg contrassegnerà il test come superato.

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

 Il metodo Test sopra verrà passato in quanto genera l'eccezione prevista da TestNG.

Qual è la differenza tra l'annotazione @BeforeTest e @BeforeMethod?

@BeforeTest viene eseguito una volta prima di ogni testng etichetta menzionato nel file testng.xml 

@BeforeMethod viene eseguito prima di ogni metodo di script di test.

Qual è il vantaggio di utilizzare il file testng.xml?

Con il file testng.xml, puoi controllare il flusso di esecuzione con una singola suite di test o più suite di test in un unico file xml di testng. Alcune delle caratteristiche importanti sono:

  • Il file testng.xml ci consente di escludere e includere metodi di test e l'esecuzione di gruppi di test.
  • È possibile passare dati/parametri di test tramite testng.xml.
  • È possibile aggiungere dipendenze tra metodi di test e anche un gruppo di metodi di test
  • Puoi dare la priorità ai test case.
  • Si ottiene l'esecuzione parallela dei test case.
  • Puoi implementare diversi listener di testng e usarli citando quelli nel file testng.xml.
  • Se esegui la tua suite con testng.xml, fallirai solo il test per l'iterazione successiva utilizzando TestNG-failed.xml generato dopo ogni esecuzione.
  • È possibile eseguire specifici gruppi di test utilizzando tag di TestNG xml.

Quanti tipi di dipendenze puoi ottenere usando TestNG?

Esistono due tipi di dipendenze che possiamo ottenere con TestNG: 

A. DependsOnMethods: 

Utilizzando questo attributo dipendeOnMethods, si definisce quale metodo di test dipenderà da altri metodi di test, quindi se il metodo dipendente non è riuscito o non viene eseguito, anche il metodo di test dipendente non verrà eseguito.

@Test public void loginUserProfile() { System.out.println("Accesso utente"); } @Test(dependsOnMethods = "loginUserProfile") public void logOutPage_user() { System.out.println("Pagina di logout per utente"); }

 Ecco il metodo di test logOutPage_user che verrà eseguito dopo la corretta esecuzione del test loginUserProfile.

B. dependOnGroups: 

In questo tipo di dipendenza di test, ci permette di mettere l'inserimento delle dipendenze per i metodi di test con un gruppo di metodi di test.

Il flusso di esecuzione avviene in questo modo, ovvero il testGroup viene prima attivato ed eseguito, quindi viene attivato il metodo di test dipendente e, una volta completato con successo il test di gruppo, viene eseguito il metodo di test dipendente.

@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"); }

Conclusione: Con questo concludiamo l'elenco di tutte le critiche e importanti Domande e risposte dell'intervista di TestNg , per ottenere una migliore presa su TestNg puoi passare attraverso il documentazione esaustiva su TestNg.

Per saperne di più sul tutorial esaustivo sul selenio che puoi visitare qui.

Lascia un tuo commento