Unboxing TestNG Parametri e annotazioni DataProvider

A differenza del vecchio& reliable JUnit Test Framework, TestNG è il moderno strumento di automazione dei test. Ha il supporto integrato per i test basati sui dati e fornisce due modi per fornire dati ai casi di test, ovvero tramite parametri TestNG e annotazioni DataProvider.

Con l’aggiunta di queste due annotazioni, il framework TestNG ha colmato una lacuna significativa che il suo predecessore aveva. Una di queste annotazioni aggiunge la possibilità di utilizzare valori di dati fissi nei casi di test, mentre l’altra consente di interrogare i valori da qualsiasi origine dati esterna come Excel o i file delle proprietà.

Nelle sezioni successive, vedrai l’utilizzo in tempo reale sia dei parametri TestNG che delle annotazioni DataProvider con esempi pronti per l’esecuzione.

Learn – TestNG Parameters and DataProvider Annotations

Vantaggi del test parametrico

Prima di procedere, comprendiamo il vantaggio del test parametrico / basato sui dati. Qualsiasi strumento di automazione di test che abbia entrambe queste funzionalità può occuparsi in modo efficiente dei seguenti casi.

  • Elaborare il set di dati di grandi dimensioni secondo il requisito aziendale.
  • Eseguire lo stesso test più e più volte con valori diversi.

Vediamo ora quando e come possiamo usare l’annotazione<@Parameters> nei progetti TestNG.

@Parameters Annotation

Con l’aiuto di questa annotazione, è possibile consentire valori di parametri singoli e multipli ai metodi di test.

Possiamo usarlo per il test dei parametri. È consigliabile quando i dati sono piccoli e fissi per i casi di test.

Esempio – @Annotazione parametri

Seguire i passaggi seguenti per utilizzare l’annotazione<@Parametri>.

Step-1

Crea una nuova classe Java e chiamala come < ParametersTesting.Java >. Aggiungere i seguenti due metodi nella classe.

i – OpenBrowser ()

  • Ci vorrà un singolo parametro di tipo Stringa, cioè browserName.
  • Aggiungi l’annotazione @ Parameters (“BrowserName”) a questo metodo.

ii – FillLoginForm ()

Step-2

Di seguito è riportato il TestNG.File XML con parametri associati ai metodi di test.

È ora il momento di eseguire il TestNG <.XML > file. Fare clic con il pulsante destro del mouse sul file XML dall’IDE Eclipse e premere l’opzione”Esegui come >> TestNG Suite”. Dopo l’esecuzione, l’output verrà visualizzato come quello indicato nello screenshot qui sotto.

TestNG Parameters and DataProvider Annotations – Parameter Testing

Un altro fatto interessante sul TestNG è che permette di passare parametri opzionali usando l’annotazione @Optional.

@Annotazione opzionale

È possibile utilizzarlo per specificare un valore opzionale per un parametro che non è disponibile nel TestNG.File XML.

Esempio- @ Annotazione opzionale

Fare riferimento al seguente esempio di annotazione @opzionale.

TestNG XML

Ecco il “TestNG.XML ” associato all’esempio precedente.

È possibile controllare da quanto sopra <testng.xml > file che ha due metodi di test definiti in esso. Il primo test non ha alcun parametro mentre il secondo specifica un parametro denominato ” valore opzionale.”

Uscita:

Dopo aver eseguito il<testng.xml > come suite di test, l’output sarebbe il seguente.

Se si osservano i risultati del test, TestNG ha utilizzato il valore opzionale durante l’esecuzione del primo metodo di test. È successo perché TestNG non è riuscito a trovare un parametro denominato “valore opzionale” nel file XML per il primo test. Tuttavia, per il secondo test, ha risolto il valore del parametro che viene stampato anche durante l’esecuzione del test.

Per la nota, è possibile utilizzare l’annotazione dei parametri con uno qualsiasi dei metodi annotati Before/After, Factory e Test. Inoltre, è possibile utilizzarlo per impostare le variabili e utilizzarle in classe, test o suite di test.

@Annotazione DataProvider

Il provider di dati è un’altra annotazione che supporta i test basati sui dati. È possibile utilizzarlo per gestire una vasta gamma di parametri complessi come il seguente.

  • Oggetti Java
  • Oggetti da un database
  • Dati da Excel o file di proprietà

Fatti su @DataProvider Annotazione

Di seguito sono riportati alcuni fatti interessanti sul provider di dati.

  • Questa annotazione ha un attributo string che è il suo nome. Se non si specifica un nome, il nome del metodo funge da nome predefinito.
  • Un metodo del provider di dati prepara e restituisce un elenco 2D di oggetti.
  • Un test basato sui dati viene eseguito una volta per ogni set di dati specificato dall’oggetto data provider.

Come usare @DataProvider Annotation

Ora vediamo i passaggi necessari per utilizzare l’annotazione del provider di dati per i test basati sui dati.

  • Crea una nuova classe Java, ad esempio DataProviderTest.Java.
  • Definire il metodo del provider di dati annotato utilizzando <@DataProvider>. Dovrebbe restituire l’elenco 2-d di oggetti.
  • Aggiungere un metodo di prova e decorarlo utilizzando il <@Test(dataProvider = “nome del provider di dati”)>.

Per maggiore chiarezza sull’annotazione del provider di dati, leggere molto attentamente l’esempio di codice seguente. In questo esempio di codice, stiamo dimostrando i tre diversi usi dei fornitori di dati.

  • Passando Java integer object utilizzando il provider di dati
  • Streaming Java bean object utilizzando il provider di dati

Esempio Utilizzando @DataProvider Annotation

TestNG XML File

È possibile eseguire il codice di cui sopra da Eclipse come test TestNG. Oppure puoi generare il TestNG<.XML > e quindi eseguire il file XML come una suite di TestNG.

Output:

Dopo aver eseguito il codice sopra come test o come suite di test, vedrai il seguente output. Si prega di verificare dal frammento di seguito.

Final Word – TestNG Parameters and DataProvider

Abbiamo cercato di coprire il più possibile i parametri TestNG e le annotazioni DataProvider insieme ai loro esempi. Tuttavia, ci sono molti altri casi d’uso del provider di dati che affronteremo in un post separato. Fino ad allora buona lettura di questo post e condividerlo sui social media.

Tutto il meglio,

TechBeamers

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.