Le 19 migliori domande e risposte all'intervista TestNG (2025)
Ecco le domande e le risposte all'intervista TestNG per le matricole e i candidati esperti per ottenere il lavoro dei loro sogni.
1) Cos'è TestNG?
TestNG è un framework di test automatizzato open source. Si basa sul framework JUnit, ma non ne è un'estensione.
Download gratuito del PDF: domande dell'intervista TestNG
2) Quali sono le funzionalità di TestNG?
Le funzionalità di TestNG includono
- TestNG utilizza più funzionalità OO (orientate agli oggetti) e Java
- Supporta il test delle classi integrate
- Sono supportate diverse annotazioni
- Separare il codice di test in fase di compilazione dalle informazioni sui dati/configurazione in fase di esecuzione
- La configurazione in fase di esecuzione è flessibile
- Plug-in flessibile API
- Per ulteriore flessibilità incorpora BeanShell
- Supporto per test del selenio multi-thread
- Supporta test paralleli, test di carico, guasti parziali e metodi di test dipendenti
- Dopo la compilazione del test è possibile richiedere a TestNG di eseguire tutti i test “front-end” o “lento”, “veloce”, “database”,
- Per la stessa classe di test, supporto TestNG per più istanze
- Per la registrazione, nessuna dipendenza, funzioni JDK predefinite per la registrazione e il runtime
3) Elencare i vantaggi di TestNG rispetto a Junit?
I vantaggi di TestNG rispetto a JUnit includono
- Rispetto alle annotazioni JUnit, TestNG è facile da capire
- A differenza di JUnit, TestNG non richiede di dichiarare @Before Class e @After Class
- Il vincolo del nome del metodo non è presente in TestNG
- TestNG ti consente di raggruppare facilmente i casi di test, cosa che non è possibile in JUnit
- TestNG supporta le seguenti tre configurazioni aggiuntive: @Before/After Suite, @Before/After Test e @Before/After Group
- TestNG non ha bisogno di estendere alcuna classe
- In TestNG, è possibile eseguire casi di test del driver web selenium in parallelo
- Basato sul gruppo TestNG consente di eseguire i casi di test
- TestNG consente di determinare i casi di test dipendenti; ogni caso di test è autonomo rispetto a un altro caso di test
4) Quali sono i passaggi fondamentali richiesti per scrivere i test TestNG?
I passaggi di base richiesti per scrivere TestNG includono
- Annota la logica aziendale del tuo test e inserisci le annotazioni TestNG nel tuo codice
- In una costruzione.xml o testing.xml, aggiungi le informazioni sul tuo test
- Esegui TestNG
5) Elencare i vari modi in cui è possibile richiamare TestNG.
TestNG può essere richiamato in diversi modi come
- utilizzando Eclissi
- Con la formica
- Dalla riga di comando
- Utilizzando IDEA di IntelliJ
6) Spiegare l'uso del file testng.xml
Il file testing.xml cattura l'intero test in XML. Questo file semplifica la definizione di tutta la suite di test e dei relativi parametri in un unico file, che puoi verificare nel repository del codice o inviare tramite e-mail ai colleghi. Inoltre, semplifica l'estrazione di sottoinsiemi dei test o la suddivisione di diverse configurazioni di runtime.
7) In TestNG come si disabilita un test?
Per disabilitare il caso di test che non desideri, puoi utilizzare le annotazioni @Test(enabled = false).
8) Cos'è il test di timeout in TestNG?
Il test Time-Out in TestNG non è altro che il tempo assegnato per eseguire test unitari. Se il test unitario non riesce a terminare entro quel limite di tempo specifico, TestNG abbandonerà ulteriori test del software e lo contrassegnerà come un fallimento.
9) Spiegare il test delle eccezioni
TestNG offre la possibilità di tracciare la gestione delle eccezioni del codice. È possibile verificare se un codice genera i risultati previsti o meno. Il parametro expected Exceptions è disponibile insieme all'annotazione @Test.
10) Cosa fa il “test della suite” in TestNG?
Il "Suite Test" viene eseguito quando è necessario eseguire più test unitari contemporaneamente. Il "Suite Test" raggruppa questi test unitari. Per eseguire il test della suite viene utilizzato un file XML.
11) Cos'è il test parametrizzato?
I test parametrici consentono agli sviluppatori di eseguire lo stesso test più e più volte utilizzando valori diversi. In due modi diversi, TestNG consente di passare i parametri direttamente ai metodi di test.
- Con testing.xml
- Con fornitori di dati
12) Come è possibile eseguire i test JUnit utilizzando TestNG?
È possibile eseguire i test JUnit utilizzando TestNG tramite
- Posizionamento della libreria JUnit sul percorso classi TestNG in modo che possa individuare e utilizzare le classi JUnit
- Cambia il tuo test runner da JUnit a TestNG in Ant, quindi esegui TestNG in "modalità mista". Questo porterà tutti i tuoi test nello stesso
Questo approccio consente inoltre di convertire il test JUnit esistente in TestNG.
13) Cosa indicano @Test(invocationCount=?) e (threadPoolSize=?)?
- @Test (threadPoolSize=?): Gli attributi threadPoolSize indicano a TestNG di formare un pool di thread per eseguire il metodo di test attraverso più thread. Con un pool di thread, il tempo di esecuzione del metodo di test si riduce notevolmente.
- @Test(invocationCount=?): Il conteggio delle chiamate indica quante volte TestNG deve eseguire questo metodo di test
14) Quali sono i diversi modi in cui è possibile produrre report per i risultati del TestNG?
Esistono due modi per produrre un report con Test NG
- Gli ascoltatori: Affinché una classe listener possa essere implementata, la classe deve implementare l'interfaccia org.testng./TestListener. Queste classi vengono informate in fase di esecuzione da TestNG quando il test inizia, termina, salta, passa o fallisce.
- Reporter: Affinché una classe di reporting possa essere implementata, la classe deve implementare un'interfaccia org.testng/Reporter. Al termine dell'esecuzione dell'intera suite, vengono richiamate queste classi. Quando viene richiamato, a questa classe viene consegnato l'oggetto costituito dalle informazioni dell'intero test.
15) Cos'è il test di gruppo in TestNG?
Si tratta di una nuova funzionalità inclusa in TestNG; consente di distribuire i metodi in porzioni appropriate e di raggruppare i metodi di test. Con il group test, è possibile non solo dichiarare i metodi che appartengono a gruppi, ma anche specificare gruppi di test che contengono altri gruppi. I gruppi vengono determinati nel file testing.xml utilizzando il group test.
16) Quali sono le modalità per consentire a TestNG di specificare le dipendenze?
TestNG ti consente di specificare le dipendenze in due modi
- L'uso degli attributi dipende da Methods nelle annotazioni @Test
- L'utilizzo degli attributi dipende da Groups nelle annotazioni @Test
17) Cosa significa quando devi passare parametri utilizzando i fornitori di dati in TestNG?
Quando è necessario passare parametri complessi o parametri che devono essere creati da Java, in tal caso i parametri possono essere passati utilizzando i provider di dati. L'annotazione per il provider di dati è @DataProvider. Questa annotazione ha un solo attributo stringa se il nome non è dichiarato; il nome del provider di dati assume automaticamente il nome del metodo. Un provider di dati restituisce un schieramento di oggetti.
18) Nominare vari metodi per eseguire test in TestNG?
I test in TestNG vengono eseguiti utilizzando la classe TestNG. Per l'esecuzione dei test nel framework di test TestNG, la classe è il punto di ingresso principale. Gli utenti possono creare il proprio oggetto TestNG e invocarlo in molti modi diversi, ad esempio
- Su un file testing.xml già esistente
- Su un testing.xml sintetico creato interamente da Java
- Impostando direttamente le classi di test
19) Fornire il codice TestNG di esempio
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; public class firsttestngfile { public String baseUrl = "http://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver ; @Test public void verifyHomepageTitle() { System.out.println("launching firefox browser"); System.setProperty("webdriver.firefox.marionette", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); driver.close(); } }
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)
Buono per prepararsi alle interviste
Nella domanda n. 6, hai scritto testing.xml invece di testng.xml
Grazie... questo è corretto
La prima riga della terza domanda dovrebbe essere "Vantaggi di TestNG rispetto a JUnit include".
Grazie per le domande
Errore risolto!
11) Cos'è il test parametrico? Dovrebbe essere Cos'è il test parametrizzato?
Ciao, grazie per aver scritto. Viene rivisto e aggiornato.