Tests pilotés par les données avec TestNG et Selenium

Tests pilotés par les données avec TestNG et Selenium
MIN
17 Mar 2024

Dans ce texte, nous parlerons des tests basés sur les données. Nous ferons référence à l’annotation @DataProvider dans TestNG, que nous pouvons utiliser pour passer des données aux méthodes de test et créer un cadre de test axé sur les données.

Table des matières

Qu’est-ce qu’un test piloté par les données ?

Le test piloté par les données est une technique d’automatisation des tests dans laquelle les données de test et la logique de test sont découplées. Les données de test alimentent les tests en étant chargées de manière itérative dans le script de test. Par conséquent, au lieu d’avoir des données d’entrée codées en dur, nous disposons de nouvelles données chaque fois que le script extrait des données de la source de données de test.

Tests basés sur les données à l’aide de @DataProvider

Les tests pilotés par les données peuvent être réalisés par TestNG à l’aide de l’annotation @DataProvider. La méthode avec l’annotation @DataProvider ci-dessus renvoie un tableau 2D de l’objet, où les lignes indiquent le nombre d’itérations et les colonnes indiquent le nombre de paramètres d’entrée transmis à la méthode Test à chaque itération.

Cette annotation ne prend en paramètre que le nom du fournisseur de données, qui est utilisé pour lier le fournisseur de données à la méthode Test. Si aucun nom n’est indiqué, le nom de la méthode du fournisseur de données est considéré comme le nom du fournisseur de données.

@DataProvider(name = « nameOfDataProvider »)

public Object[][] dataProviderMethodName() {

/La logique de génération ou de récupération de données à partir de toute source externe

//Retourne un tableau 2d d’objets

return new Object[][] {{« k1 », « r1 »,1},{« k2 », « r2 »,2}} ;

}

Une fois la méthode du fournisseur de données créée, nous pouvons associer la méthode Test au fournisseur de données en utilisant l’attribut « dataProvider » de l’annotation @Test. Pour relier avec succès le fournisseur de données à la méthode de test, le nombre et le type de données des paramètres de la méthode de test doivent correspondre aux paramètres renvoyés par la méthode du fournisseur de données.

@Test(dataProvider = « nameOfDataProvider »)

public void sampleTest(String testData1, String testData2, int testData3) {

System.out.println(testData1 +  »  » + testData2 +  »  » + testData3) ;

}

Extrait de code pour les tests pilotés par les données dans TestNG

@DataProvider(name = « dataProvider1 »)

public Object[][] dataProviderMethod1() {

return new Object[][] {{« k1 », « r1 »},{« k2 », « r2 »},{« k3 », « r3 »}} ;

}

//Le scénario de test sera exécuté 3 fois avec des valeurs différentes.

@Test(dataProvider = « dataProvider1 »)

public void sampleTest(String str1, String str2) {

System.out.println(str1 +  »  » + str2) ;

}

Le test « sampleTest » ci-dessus est exécuté trois fois avec différents ensembles de données de test – {« k1 », « r1 »},{« k2 », « r2 »},{« k3 », « r3 »} reçues de la méthode dataProvider1′ dataProvider.