Fermer

mars 27, 2024

Explorer le paramétrage des niveaux de test et des niveaux de suite dans TestNG / Blogs / Perficient

Explorer le paramétrage des niveaux de test et des niveaux de suite dans TestNG / Blogs / Perficient


Le paramétrage dans l’automatisation des tests est une technique cruciale qui permet aux testeurs d’exécuter le même test avec différents ensembles de données ou configurations, améliorant ainsi la flexibilité et la couverture des tests. En utilisant des tests paramétrés, les testeurs peuvent exécuter un seul test plusieurs fois avec diverses entrées, améliorant ainsi l’exhaustivité des tests. Cette approche permet d’économiser du temps et des efforts en permettant de tester de nombreux scénarios et entrées sans avoir besoin de créer des tests distincts pour chaque cas. Dans TestNG, le paramétrage peut être implémenté à la fois au niveau du test et de la suite, offrant une flexibilité dans la transmission des valeurs aux méthodes de test.

Paramétrage du niveau de test

Le paramétrage au niveau du test implique de transmettre différentes valeurs à la même méthode de test. Cette approche est particulièrement utile lorsque vous souhaitez exécuter la même logique de test avec plusieurs ensembles de données d’entrée. TestNG fournit l’annotation ‘@DataProvider’ pour y parvenir.

Exemple 1 : tester la connexion avec plusieurs informations d’identification utilisateur

Supposons que nous souhaitions tester une fonctionnalité de connexion avec différentes informations d’identification utilisateur. Nous pouvons créer une méthode de fournisseur de données et annoter notre méthode de test pour utiliser ce fournisseur de données :

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class TestLevelParameterizationExample {

    @DataProvider(name = "loginData")

    public Object[][] loginData() {

        return new Object[][] {

            {"user1", "password1"},

            {"user2", "password2"},

            {"user3", "password3"}

        };

    }

    @Test(dataProvider = "loginData")

    public void testLogin(String username, String password) {

        // Implement login test logic using username and password

        System.out.println("Testing login with username: " + username + " and password: " + password);

    }
}

Dans cet exemple, la méthode « @DataProvider » « loginData » fournit plusieurs ensembles d’informations d’identification et la méthode « @Test » « testLogin » est exécutée pour chaque ensemble.

Paramétrage au niveau de la suite

Le paramétrage au niveau de la suite vous permet de transmettre des paramètres à l’ensemble de la suite de tests. Ceci est utile lorsque vous souhaitez configurer les propriétés ou les paramètres de la suite de tests qui s’appliquent à tous les tests de la suite. Vous pouvez spécifier des paramètres au niveau de la suite dans votre fichier de configuration testng.xml.

Exemple 2 : configuration du navigateur et de l’environnement pour la suite de tests

Supposons que vous souhaitiez exécuter votre suite de tests sur différents navigateurs et environnements (par exemple, assurance qualité et production). Vous pouvez définir ces paramètres dans votre fichier testng.xml :

<suite name="MyTestSuite">

    <parameter name="browser" value="chrome"/>

    <parameter name="environment" value="qa"/>

    <test name="Test1">

        <classes>

            <class name="SuiteLevelParameterizationExample"/>

        </classes>

    </test>

</suite>

Cet exemple définit les paramètres « navigateur » et « environnement » au niveau de la suite. Pour accéder à ces paramètres dans vos classes de test, vous pouvez utiliser l’annotation ‘@Parameters’ :

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class SuiteLevelParameterizationExample {

    @Parameters({"browser", "environment"})

    @Test

    public void configureTest(String browser, String environment) {

        // Configure test settings based on the provided parameters

        System.out.println("Configuring test with browser: " + browser + " and environment: " + environment);

    }

}

Dans cet exemple, la méthode « configureTest » récupère les paramètres « navigateur » et « environnement » et les utilise pour configurer le test.

Clarifions les principales différences entre le paramétrage au niveau du test et le paramétrage au niveau de la suite dans TestNG :

Paramétrage au niveau des tests et paramétrage au niveau de la suite

Attributs de paramétrage du niveau de test :

  1. Portée: Le paramétrage au niveau du test vous permet de transmettre différentes valeurs à des méthodes de test individuelles au sein d’une classe de test. Chaque méthode de test peut avoir son ensemble unique de données.
  2. Annotation: Ceci est réalisé en utilisant le @Fournisseur de données annotation, qui définit une méthode qui fournit des données à la méthode de test annotée avec @Test(dataProvider = « dataProviderMethodName »).
  3. Exemple: Dans l’exemple fourni, le @Fournisseur de données méthode données de connexion fournit des données au testConnexion méthode. Chaque ensemble d’informations d’identification est utilisé pour une exécution distincte de testConnexion.
  4. La flexibilité: Le paramétrage au niveau des tests est plus flexible lorsque des données différentes sont nécessaires pour différentes méthodes de test au sein de la même classe de test.

Attributs de paramétrage au niveau de la suite :

  1. Portée: Le paramétrage au niveau de la suite vous permet de transmettre des paramètres qui s’appliquent à l’ensemble de la suite de tests. Ces paramètres sont partagés entre tous les tests de la suite.
  2. Configuration: Il est configuré dans le fichier testng.xml à l’aide du éléments, où vous définissez les noms et les valeurs des paramètres pour l’ensemble de la suite.
  3. Accéder: Vous pouvez accéder aux paramètres au niveau de la suite à l’aide du @Paramètres annotation dans vos classes de test. Toutes les méthodes de test de la suite peuvent accéder au même ensemble de paramètres.
  4. Exemple: Dans l’exemple fourni, les paramètres au niveau de la suite navigateur et environnement sont définis dans le fichier testng.xml et accessibles par le configurerTest méthode dans le SuiteLevelParameterizationExemple classe. Ces paramètres s’appliquent à tous les tests de la suite.
  5. Cas d’utilisation : Le paramétrage au niveau de la suite est utile pour configurer les paramètres globaux, tels que la spécification d’un navigateur ou d’un environnement commun pour tous les tests de la suite. Cela convient lorsque vous souhaitez maintenir la cohérence entre plusieurs tests.

Conclusion

Le paramétrage est un aspect crucial de l’automatisation des tests qui améliore la polyvalence et la couverture de vos tests. Dans TestNG, vous pouvez implémenter le paramétrage aux niveaux du test et de la suite. Le paramétrage au niveau du test vous permet de transmettre différentes données à la même méthode de test, tandis que le paramétrage au niveau de la suite vous permet de configurer les propriétés de la suite de tests. En maîtrisant ces techniques, vous pouvez écrire des tests automatisés plus robustes et flexibles pour valider les fonctionnalités de votre application dans diverses conditions.






Source link