Articles

TestNG Interview Questions

Posted by admin

In questo corso dedicato a TestNG, abbiamo cercato di coprire tutti gli argomenti relativi al framework TestNG. Spero che i lettori hanno praticato TestNG con una miscela di argomenti dedicati a questo corso. Inoltre, eccellere nel framework TestNG e mantenere i suoi concetti sui suggerimenti ti aiuterà a migliorare la tua carriera e aggiungere un’altra piuma nel tuo cappello. Inoltre, aprirà anche più porte a opportunità ed esperienze su diversi progetti e diverse aziende nella tua carriera professionale. Ma per cogliere queste opportunità, è necessario affrontare un’altra sfida, cioè un’intervista. Pertanto, tratteremo domande intervista TestNG in questo articolo.

Di conseguenza, per aiutare i nostri colleghi tester negli stessi riguardi, abbiamo preparato un elenco di domande di intervista TestNG disponibili in questi post, che vengono poste popolarmente nelle interviste relative alle posizioni di ingegnere di prova o ingegnere di automazione. Tuttavia, la cosa da ricordare qui è che anche se queste domande toccano ogni concetto delle domande di intervista TestNG, il restante duro lavoro è la pratica.

Pertanto, ti consiglio di passare attraverso tutti gli argomenti e praticarli a fondo in quanto non ci sono vincoli duri e veloci su ciò che un intervistatore può chiedere all’intervistato. Inoltre, molte di queste domande prenderanno il riferimento di Selenium insieme a TestNG perché TestNG è usato abbastanza pesantemente con il driver web Selenium. Pertanto, queste domande di intervista TestNG sono solo di riferimento.

Le seguenti domande sono state suddivise nelle sotto-parti per aiutarti a ricordare il concetto in modo più chiaro.

Nozioni di base di TestNG

Qual è il framework TestNG?

TestNG framework è un framework di test per eseguire test nel linguaggio di programmazione java. Inoltre, il” NG “in TestNG abbrevia per” Next Generation.”Cedric Beust lo ha sviluppato e ispirato al framework di test JUnit e NUnit. Successivamente, puoi imparare Cosa è TestNG Framework in dettaglio, qui.

Come si esegue lo script TestNG?

Lo script TestNG viene eseguito facendo clic con il pulsante destro del mouse sulla classe TestNG- > Esegui come- > TestNG Test. Successivamente, scopri come installare TestNG in Eclipse e IntelliJ.

Quali sono i vantaggi di TestNG?

Una delle domande comuni dell’intervista TestNG riguarda i vantaggi di TestNG.

TestNG presenta i seguenti vantaggi:

  • In primo luogo, TestNG è in grado di produrre report automaticamente con tutte le informazioni necessarie come test falliti, test superati, tempi di esecuzione dei test, ecc.
  • In secondo luogo, TestNG fa uso di annotazioni come @BeforeMethod, @Test, ecc., che sono facilmente comprensibili come la loro denominazione è dopo il loro lavoro.
  • In terzo luogo, TestNG fornisce un raggruppamento di metodi con cui possiamo raggruppare più metodi come un’unità. In altre parole, il raggruppamento esegue operazioni su tutti i test di un gruppo contemporaneamente anziché individualmente.
  • In quarto luogo, TestNG fornisce una parametrizzazione del metodo di prova, il che significa che possiamo fornire parametri nel TestNG e chiamare ripetutamente la funzione con valori diversi. Inoltre, la parametrizzazione aiuta nei test basati sui dati in TestNG.
  • In quinto luogo, TestNG fornisce la priorità dei metodi. In altre parole, definendo le priorità dei metodi in TestNG, possiamo modificare la sequenza di esecuzione predefinita dei metodi di test secondo il nostro desiderio.
  • Oltre a quanto sopra, TestNG consente test paralleli, che aumenta l’efficienza e migliora il tempo di esecuzione complessivo dei metodi di prova.
  • Con il framework TestNG, puoi facilmente integrarti con altri strumenti come Maven, Jenkins, ecc.
  • Inoltre, TestNG fornisce una funzionalità per eseguire più metodi di test su vari browser per verificare problemi di compatibilità cross-browser sul tuo sito web. Si tratta di test cross-browser.
  • Inoltre, TestNG ci consente di eseguire i test separatamente. Quindi, se si eseguono i test e solo un test non è riuscito, è possibile eseguire questo test in modo indipendente nell’esecuzione successiva.
  • Inoltre, TestNG consente ai metodi di prova di dipendere l’uno dall’altro. È anche chiamata dipendenza da test in TestNG.
  • Infine, TestNG fornisce una serie di metodi di asserzione per testare in modo più efficiente.

Successivamente, puoi saperne di più sui vantaggi del framework TestNG qui.

TestNG Test Case e Suite

Qual è la differenza tra un test TestNG e una suite di test TestNG?

TestNG test suite si riferisce a una raccolta di test che possiamo eseguire simultaneamente con l’aiuto del file XML TestNG. D’altra parte, un test TestNG è un singolo file di test case e quando diciamo “stiamo eseguendo un test case TestNG”, intendiamo semplicemente che stiamo eseguendo un singolo file di test case.

Scopri di più su TestNG Test Suite.

Definire l’ordine corretto dei tag nel file XML TestNG.

L’ordine corretto seguito per eseguire la suite TestNG dal file XML è il seguente:

XHTML

1
2
3
4
5

<suite>
<prova>
<classi>
<classe>
<metodi>

Il tag di chiusura non vengono visualizzati qui, come è giusto a scopo dimostrativo. Successivamente, è possibile saperne di più su Come eseguire suite TestNG tramite XML?

Annotazioni TestNG

Quali sono i tipi di annotazioni utilizzate in TestNG (Nella sequenza di esecuzione/gerarchia)?

Ci sono nove tipi di annotazioni utilizzate in TestNG. In ordine di sequenza di esecuzione, sono i seguenti:

  • @BeforeSuite
  • @BeforeTest
  • @BeforeClass
  • @BeforeMethod
  • @Test
  • @AfterMethod
  • @AfterClass
  • @AfterTest
  • @AfterSuite

Quali sono le categorie di annotazioni in TestNG?

Le annotazioni TestNG si dividono in tre categorie:

  • Annotazioni precondizione: le annotazioni in questa categoria vengono eseguite prima del test. Consiste delle seguenti annotazioni:
    • @ BeforeMethod
    • @BeforeClass
    • @BeforeSuite
    • @BeforeTest
  • Annotazioni di test: Le annotazioni in questa categoria sono definite appena prima dei metodi di test. Inoltre, consiste delle seguenti annotazioni:
    • @Test
  • Annotazioni postcondition: le annotazioni in questa categoria vengono eseguite dopo i metodi di test. Inoltre, è costituito dalle seguenti annotazioni:
    • @ AfterMethod
    • @ AfterClass
    • @AfterTest
    • @ AfterSuite

Successivamente, puoi saperne di più qui, Come usare le annotazioni TestNG usando il Selenio.

Rapporti TestNG

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

TestNG genera due tipi di report per impostazione predefinita al termine dell’esecuzione di tutti i metodi di test. Loro sono:

  • Rapporti Emailable
  • Rapporti Index

Successivamente, puoi saperne di più qui, Quali sono i rapporti emailable e index in TestNG?

Dove viene generato e salvato il report emailable in TestNG?

I report disponibili vengono generati nella cartella del progetto e nella sottocartella test-output. Questo rapporto è disponibile come ” emailable-report.html ” per impostazione predefinita.

Dove viene generato e salvato il report index in TestNG?

Il report indice viene generato nella cartella del progetto e nella sottocartella test-output. Inoltre, questo rapporto è disponibile come ” indice.html ” per impostazione predefinita.

Successivamente, puoi saperne di più qui, Come visualizzare e analizzare i report in TestNG?

Priorità TestNG

Quali sono le priorità in TestNG?

Priorities in TestNG è un parametro che dichiara la priorità ad uno specifico metodo di test. TestNG utilizza il metodo di esecuzione alfabetica per eseguire il suo metodo di prova. Attraverso le priorità, possiamo modificare la sequenza dell’esecuzione del test. Inoltre, la priorità può essere impostata come un valore intero e abbassare questo valore intero; più alta è la priorità.

Successivamente, puoi saperne di più qui, quali sono le priorità in TestNG?

Come definiresti le priorità in TestNG?

La priorità TestNG è impostata dalla seguente sintassi:

@Test (priority = 1)

public void func(){

//codice di prova

}

Un esempio di prioritizzazione in TestNG può essere il seguente:

Successivamente, puoi saperne di più qui, Come impostare le priorità e il sequenziamento in TestNG?

Perché creiamo il file XML in TestNG?

Usiamo il file XML in TestNG per molti scopi. Il file XML TestNG ci aiuta:

  • Per eseguire più test in una singola esecuzione.
  • In secondo luogo, ci aiuta anche a includere ed escludere i metodi e i gruppi di test.
  • In terzo luogo, ci aiuta anche ad aggiungere dipendenze nei gruppi.
  • In quarto luogo, aiuta a eseguire i metodi del test case attraverso i parametri.
  • Infine, assiste nell’esecuzione dell’esecuzione del test parallelo.

Ulteriori informazioni su Come includere ed escludere gruppi in TestNG attraverso il file XML?

Parametri TestNG

Che cos’è la parametrizzazione in TestNG?

In TestNG, la parametrizzazione esegue un metodo di prova più volte con valori diversi. Un altro nome per questo processo è il test basato sui dati in TestNG. Possiamo acquisire la parametrizzazione in TestNG in due modi:

  • In primo luogo, possiamo ottenerlo attraverso il file XML.
  • In secondo luogo, possiamo ottenerlo attraverso i dataprovider in TestNG.

Ulteriori informazioni su Come eseguire test parametrizzati in TestNG tramite XML e dataprovider.

Quali sono i parametri opzionali in TestNG?

I parametri opzionali funzionano in modo simile al caso predefinito nella parametrizzazione in TestNG. Usiamo il parametro opzionale quando nessun altro parametro viene definito per quel metodo di test case. Inoltre, l’annotazione @ Optional dichiara il parametro opzionale. Non definiamo il parametro @ Optional sopra la definizione del metodo di test ma accanto a dove viene dichiarato il metodo. Successivamente, il seguente frammento di codice mostra la dichiarazione dei parametri opzionali in TestNG:

Ulteriori informazioni su Come implementare i parametri opzionali in TestNG?

Scrivere il codice snipped per passare i valori 1 e 2 ai parametri val1 e val2 attraverso il file XML.

Per passare i valori nei parametri in TestNG, usiamo < parametro> tag nel file XML TestNG. Inoltre, contiene due attributi:

  • nome: il nome della variabile del parametro.
  • valore: il valore da inserire in quella variabile.

Osservare il seguente file XML che denota lo stesso concetto.

Ulteriori informazioni su Come passare i parametri in TestNG attraverso il file XML?

Gruppi TestNG

Qual è l’importanza dei gruppi in TestNG?

Un altro importante TestNG domande di intervista sono circa la sua importanza.

I gruppi sono la raccolta di più metodi di test case combinati in una singola unità. Raggruppando, possiamo operare direttamente sul gruppo, che rifletterà su tutti i metodi del test case sotto di esso. Inoltre, in TestNG, possiamo anche creare un gruppo di gruppi come una più grande unità di metodi di prova.

Ulteriori informazioni su Come creare un gruppo di gruppi in TestNG?

Come definisci i gruppi in TestNG?

La risposta a tali domande di intervista TestNG è che definiamo i Gruppi in TestNG passando il parametro “gruppi” all’annotazione di test con il valore che è il nome del gruppo. Nell’esempio seguente, il metodo test case sarà sotto il gruppo denominato “group1”.

@Test ( gruppi = {“gruppo1”})

//metodo test case

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

L’esclusione di un gruppo in TestNG indica che questo particolare gruppo si astiene dall’esecuzione durante l’esecuzione e TestNG lo ignorerà. Inoltre, il nome del gruppo che vogliamo escludere è definito nel file XML dalla seguente sintassi:

XHTML

1
2
3
4
5
6

<groups>
<run>
<exclude name = “demo”>
</exclude>
</run>
</groups>

Scopri di più su Come escludere i gruppi in TestNG?

Possiamo usare l’espressione regolare nei gruppi TestNG? Scrivi un file XML demo per lo stesso.

Sì, le espressioni regolari possono essere utilizzate in TestNG per eseguire i gruppi che hanno un pattern tipico nel loro nome. Ad esempio, se voglio eseguire tutti i gruppi con un nome a partire da “abc”, allora posso scrivere l’espressione regolare come abc.* nel file XML.

Una dimostrazione per quanto sopra dato un esempio è il seguente:

Ulteriori informazioni su Come utilizzare l’espressione regolare nei gruppi TestNG?

TestNG Asserisce

Cosa capisci asserendo in TestNG?

Una risorsa è un pezzo di codice che ci aiuta a verificare se il risultato atteso e il risultato effettivo sono uguali o meno. In TestNG, sfruttiamo la classe “Assert” integrata e gran parte del suo metodo per determinare se il caso di test è passato o fallito. Inoltre, in TestNG, un caso di test funge da” passaggio ” se nessuno dei metodi assert genera un’eccezione durante l’esecuzione. La sintassi per TestNG assert è:

Assert.Metodo (effettivo, atteso, messaggio);

Scopri di più sulle asserzioni TestNG e su come utilizzarle in TestNG?

Descrivi cinque asserzioni TestNG comuni.

Le cinque asserzioni TestNG comuni sono:

  • assertEqual(Stringa effettiva,String previsto)
  • assertEqual(Stringa effettiva,String previsto, String messaggio)
  • assertEquals(boolean reali,booleani previsto)
  • assertTrue(condizione)
  • assertTrue(condizione, messaggio)
  • assertFalse(condizione)
  • assertFalse(condizione, messaggio)

Anche se va notato che ci sono un sacco più asserzioni forniti da TestNG. Scopri di più sui tipi di asserzioni in TestNG e la loro sintassi.

Quali sono i diversi tipi di assert in TestNG?

Ci sono due tipi di assert in TestNG:

  • Soft Asserts
  • Hard Asserts

Scopri di più su Cosa è soft e hard assert in TestNG?

Definisci asserzioni soft in TestNG e descrivi come sono diverse dall’asserzione hard.

Asserzioni soft in TestNG significa che l’esecuzione dei test non si fermerebbe anche se l’asserzione genera un’eccezione tra l’esecuzione. Oltre a questo, TestNG non include asserzioni Soft di default in TestNG, quindi un’organizzazione extra.prova.affermare.È richiesta l’importazione di pacchetti Softassert.

Inoltre, le asserzioni soft sono diverse dalle asserzioni hard poiché le asserzioni hard interrompono l’esecuzione del test case non appena la prima asserzione fallisce e fornisce i risultati. Hard assert include per impostazione predefinita in TestNG.

Scopri di più su Cosa sono i soft assert e come usarli in TestNG?

TestNG Test dipendenti

Cosa si intende per dipendenza in TestNG?

La dipendenza in TestNG è un processo per rendere un test dipendente dall’altro test. Fornendo dipendenze nei metodi di test, assicuriamo che un metodo di test B verrebbe eseguito solo se viene eseguito il metodo di test A (dato B dipende da A). Inoltre, in TestNG, possiamo anche avere un metodo di prova dipendente da più test.

Scopri di più sui test dipendenti singoli e multipli in TestNG.

Come si creano le dipendenze in TestNG?

Possiamo creare i test dipendenti in TestNG fornendo il parametro dependsonMethods sull’annotazione @ Test. Il valore dell’attributo è il nome del metodo da cui vogliamo che questo metodo dipenda. L’utilizzo di questo metodo è il seguente:

Qui, il metodo SignIn è stato reso dipendente dal metodo OpenBrowser. Ulteriori informazioni su Come creare dipendenze in TestNG?

Come si crea una dipendenza attraverso il file XML?

TestNG ci permette anche di creare dipendenze tra gruppi attraverso il file XML TestNG. Tali dipendenze denotano la dipendenza di un gruppo da un altro. Il seguente codice mostra come raggiungere lo stesso obiettivo:

Qui, il gruppo di accesso dipende dal gruppo openbrowser. Ulteriori informazioni su Come creare dipendenze di gruppo in TestNG?

Quando usiamo “dependsOnGroups” in TestNG?

TestNG ci dà la libertà di fare un singolo test dipende da un gruppo di test. Quando vogliamo eseguire in questo modo, usiamo l’attributo dependsOnGroups nel file test case TestNG. Il valore di questo attributo è il nome del gruppo da cui vogliamo che questo metodo dipenda. Di seguito è riportato un esempio che dimostra lo stesso:

Scopri di più su Come utilizzare dependsOnGroups in TestNG?

Varie

Qual è il significato di “timeout” in TestNG?

In TestNG, “timeout” è un parametro che definisce il tempo massimo che un metodo può richiedere per l’esecuzione. Il parametro timeout è utile se il tempo di esecuzione è un vincolo durante il test, o il tester vuole prendere precauzioni contro l’esecuzione infinita di test. Possiamo dichiarare il parametro timeout a:

  • livello suite: per mettere un vincolo di tempo su tutti i metodi nella suite.
  • livello di metodo: per mettere il vincolo di tempo su un particolare metodo.

Sintassi:

@Test (timeout = 1000)

Cosa si intende per invocationCount in TestNG?

invocationCount è un attributo che definisce il numero di volte in cui un metodo di test deve essere eseguito in una singola esecuzione. Quindi, se invocationCount imposta come 5, il metodo di test verrà eseguito cinque volte ogni volta che eseguo il test case TestNG.

Sintassi per invocationCount:

@Test (invocationCount = 5)

Cosa si intende per esecuzione di test paralleli in TestNG?

L’esecuzione di test in parallelo significa eseguire contemporaneamente diversi metodi di test, ad esempio in parallelo in TestNG. Si ottiene creando thread e assegnando questi thread a diversi metodi di test (che viene eseguito automaticamente ed è il lavoro di un sistema operativo). Inoltre, eseguire i test in parallelo piuttosto che in sequenza è molto efficiente.

Scopri di più su Cos’è l’esecuzione di test paralleli in TestNG e quali sono i suoi vantaggi?

A quali livelli possiamo applicare test paralleli in TestNG?

La prova parallela può applicarsi a quattro livelli differenti in TestNG:

  • Metodi: questo eseguirà i test paralleli su tutti i metodi @ Test in TestNG.
  • Test: tutti i casi di test presenti all’interno del tag <test> verranno eseguiti con questo valore.
  • Classi: tutti i casi di test presenti all’interno delle classi esistenti nell’XML verranno eseguiti in parallelo.
  • Istanze: questo valore eseguirà tutti i casi di test parallelamente all’interno della stessa istanza.

Ulteriori informazioni su Come eseguire i test in parallelo in TestNG a diversi livelli con esempi?

Come viene eseguita la gestione delle eccezioni in TestNG?

Eseguiamo la gestione delle eccezioni in TestNG definendo l’eccezione a livello di annotazione @Test. Se procediamo in questo modo, il caso di test non fallirà anche dopo aver sollevato un’eccezione.

Esempio:

@Test (expectedException = numberFormatException.class)

Un tester può scrivere qualsiasi tipo di eccezione qui invece di numberFormatException.

Possiamo disabilitare un test in TestNG? Se è così, spiegare come?

Sì, disabilitare un test può essere ottenuto in TestNG. Una volta disattivato un test, non verrà eseguito nel ciclo di esecuzione successivo. Inoltre, realizziamo questo utilizzando l’attributo” abilitato”.

Sintassi:

@Test (enabled = False)

//codice

Ulteriori informazioni su Come saltare i test utilizzando il parametro enabled in TestNG?

Perché la classe reporter viene utilizzata in TestNG?

La classe reporter in TestNG registra i messaggi definiti dal tester nei report generati da TestNG. Questi messaggi registrati poi stampare nei rapporti, che possiamo condividere con il team.

Scopri di più su Cos’è una classe reporter in TestNG?

Definire la sintassi per la generazione di log attraverso la classe reporter in TestNG.

La classe Reporter registra i messaggi definiti dal tester sui report generati da TestNG. Inoltre, la sintassi per lo stesso è la seguente:

Reporter.log (“messaggio”);

Ulteriori informazioni su Come generare log con la classe Reporter in TestNG?

Che cos’è l’annotazione @ Factory in TestNG?

La necessità di eseguire più casi di test in un singolo test è sufficiente utilizzando l’annotazione @Factory. La fabbrica nome assomiglia alla generazione di oggetto di classe di test che viene fornito dal metodo sotto di esso. Inoltre, è simile a una fabbrica che produce un prodotto. L’esempio seguente mostra un’annotazione factory in TestNG:

Nota: Il metodo di test in @Factory annotation restituisce sempre un array di oggetti.

Qual è la differenza tra @Factory e @ Dataprovider annotations?

@Factory e @Dataprovider sono due tipi di annotazioni disponibili in TestNG, che sembrano simili nel loro funzionamento ma sono diverse.

@Fabbrica: L’uso dell’annotazione di fabbrica è quando il tester deve eseguire i metodi di prova più volte, che sono presenti nella stessa classe. Inoltre, raggiungiamo questo obiettivo creando diverse istanze della stessa classe.

@Dataprovider: l’annotazione dataprovider consente al tester di eseguire un metodo di test più volte utilizzando un diverso set di dati forniti da dataprovider.

Scopri di più su Cosa sono i dataprovider e il loro utilizzo in TestNG?

Ascoltatori di TestNG

Cosa sono gli ascoltatori in TestNG?

Gli ascoltatori in TestNG sono il pezzo di codice che ascolta determinati eventi ed esegue il codice associato a quell’evento. Di conseguenza, con gli ascoltatori di TestNG, possiamo cambiare il comportamento predefinito di TestNG. Inoltre, in TestNG, il tester ottiene il beneficio di molti ascoltatori che hanno funzionalità diverse.

Scopri di più su Cosa sono gli ascoltatori di TestNG e i loro tipi?

Come vengono dichiarati gli ascoltatori in TestNG?

Il codice listener in TestNG esiste in un file separato rispetto al file test case TestNG. Successivamente, questo file contiene il codice listener e il tipo di listener da implementare viene eseguito “implementando” la classe listener nel modo seguente:

Java

1
2
3
4
5

public class ListenersTestNG implements ITestListener {
public void onStart(ITestContext context) {
System.out.println(“onStart method started”);
}
}

Per conoscere il file test case TestNG sul listener, dichiariamo l’annotazione @ Listener e menzioniamo il nome della classe listener nel modo seguente:

Ulteriori informazioni su Come implementare gli listener in TestNG?

Di cosa abbiamo bisogno per generare un report personalizzato in TestNG?

Questa è una delle molte altre domande di intervista TestNG che vengono poste. Un rapporto personalizzato in TestNG genera con l’aiuto di ascoltatori TestNG. Usando l’interfaccia ITestListener in TestNG, possiamo controllare gli eventi come l’avvio del metodo, il passaggio del metodo,il fallimento, ecc., e secondo questi eventi, un tester può registrare messaggi appropriati.

Scopri di più su Cosa è ITestListener e come usarlo in TestNG?

Conclusivamente, queste erano le domande di intervista TestNG comuni da parte mia. Ancora una volta, ti chiederei di non dipendere interamente da queste domande di intervista TestNG e di riferirle per acquisire conoscenze su TestNG e le sue caratteristiche. Quindi, continua a praticare e tutto il meglio!!

Related Post

Leave A Comment