learn how use testng annotations selenium
TestNG, comme la plupart d'entre vous le savent, est une automatisation cadre largement utilisé dans Selenium . Il est important que tous les testeurs comprennent les annotations utilisées lors de l'utilisation de TestNG.
Pour faire simple, les annotations TestNG sont des lignes de code qui sont insérées dans la logique programme / métier pour contrôler la manière dont les méthodes ci-dessous doivent être exécutées.
Dans cet article, je vais me concentrer sur l'importance des différents types d'annotations et leur utilisation.
Ci-dessous, j'ai partagé la configuration utilisée pour mon projet. Cela ne doit pas nécessairement être suivi pour votre projet.
Les annotations diffèrent selon les exigences de votre projet. Cependant, le déroulement de l'exécution sera le même.
Conditions préalables:
- Installez TestNG dans Eclipse. Vérifier ce tutoriel sur le guide d'installation .
- JDK - Kit de développement Java
- Les annotations ne peuvent être utilisées qu'avec la version Java 1.5 ou supérieure
Avant d'écrire des scripts de test ou de mettre en place un projet, nous devons connaître la hiérarchie dans laquelle les annotations fonctionnent. L'exécution restera toujours la même.
Par exemple, compilez et exécutez le script ci-dessous et notez l'ordre d'exécution. Ce sera comme suit:
- AvantSuite
- AvantTest
- Avant les cours
- AvantMéthode
- Cas de test 1
- AfterMethod
- AvantMéthode
- Cas de test 2
- AfterMethod
- Après les cours
- Après le test
- AfterSuite
Exemple:
public class test { @BeforeMethod public void beforeMethod() { System.out.println(' Before Method will execute before every test method'); } @AfterMethod public void afterMethod() { System.out.println('After Method will execute after every test method '); } @BeforeClass public void beforeClass() { System.out.println('Before Class will always execute prior to Before Method and Test Method '); } @AfterClass public void afterClass() { System.out.println('After Class will always execute later to After Method and Test method'); } @BeforeTest public void beforeTest() { System.out.println('Before Test will always execute prior to Before Class, ,Before Method and Test Method '); } @AfterTest public void afterTest() { System.out.println('After Test will always execute later to After Method, After Class '); } @BeforeSuite public void beforeSuite() { System.out.println(“Before Suite will always execute prior to all annotations or tests in the suite.'); } @AfterSuite public void afterSuite() { System.out.println('After suite will always execute at last when all the annotations or test in the suite have run.'); } @Test public void testCase1() { System.out.println('This is my First Test Case 1'); } @Test public void testCase2() { System.out.println('This is my Second Test Case 2'); } }
Nous pouvons interrompre le processus de script de test en étapes ci-dessous:
- Écrivez la logique métier de votre test et insérez ci-dessus Annotations TestNG dans votre code
- Ajoutez les informations sur votre test (par exemple le nom de la classe, les groupes, les méthodes que vous souhaitez exécuter, etc.) dans un testng.xml déposer.
- Exécutez TestNG
Mais la question demeure: quelles informations devons-nous fournir dans les annotations ci-dessus?
Jetez un œil aux étapes importantes que nous pouvons réaliser en utilisant les annotations ci-dessus:
#1) @Test
C'est la partie principale de notre script d'automatisation où nous écrirons la logique métier, les choses que nous voulons automatiser. Nous pouvons transmettre des attributs à notre méthode de test.
Voici les listes d'attributs que nous pouvons transmettre à notre méthode de test:
- Toujours courir : Ceci est utilisé lorsque nous voulons nous assurer qu'une méthode s'exécute toujours même si les paramètres dont dépend la méthode échouent. Si elle est définie sur true, cette méthode de test s'exécutera toujours. Par exemple: @Test (alwaysRun = vrai)
- fournisseur de données : TestNG dataProvider est utilisé pour fournir des données pour le paramétrage. Par exemple. @Test (dataProvider = 'Bonjour').
- dataProviderClass : Il s'agit de la classe à partir de laquelle nous transmettons les données au fournisseur de données. Dans notre cas, le nom de la classe dataProvider est «Hello».
- dependOnGroups : C'est la liste des groupes dont dépend cette méthode. Par exemple: @Test (groups = {'City', 'State'})
- dependOnMethods: Cette commande est utilisée pour exécuter une méthode basée sur sa méthode dépendante. Par exemple: @Test (dependOnMethods = {'OpenBrowser', 'la base de données est active'})
- la description : C'est la description de la méthode. Par exemple: @Test (description = 'méthode de test')
- invocationCount : Il fait référence au nombre de fois qu'une méthode doit être appelée. Cela fonctionnera comme une boucle. Par exemple: @Test (invocationCount = 7) . Par conséquent, cette méthode s'exécutera 7 fois.
- invocationTimeOut : Cela fait référence au nombre maximum de millisecondes qu'une méthode doit prendre pour que tout invocationCount se termine. Cet attribut sera ignoré si invocationCount n'est pas spécifié. Par exemple: @Test (invocationCount = 7, invocationTimeOut = 30)
- priorité : Cette commande définit la priorité de la méthode de test. Les priorités inférieures seront programmées en premier. Par exemple: @Test (priorité = 1)
#deux)@BeforeSuite et @AfterSuite
Dans @BeforeSuite méthode annotée, vous pouvez configurer et démarrer sélénium pilotes et en @AfterSuite méthode annotée, vous pouvez arrêter les pilotes Selenium
Exemple :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass et @AfterClass
Dans @Avant les cours méthode annotée, vous pouvez configurer vos propriétés firefox, initialiser votre pilote et ainsi de suite et dans @Après les cours méthode annotée, vous pouvez arrêter le pilote
Exemple :
@BeforeClass(description = 'Set capabilities for your Firefox browser and set time it should wait for a page to load.') public static void firefoxSetUp() throws MalformedURLException { DesiredCapabilities capability = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capability); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().window().setSize(new Dimension(1920, 1080)); } @AfterClass(description = 'close your firefox driver') public void afterclass(){ driver.close(); }
# 4)@BeforeMethod et @AfterMethod
Dans @BeforeMethod méthode annotée, vous pouvez vérifier la connexion à la base de données avant d'exécuter votre méthode de test et dans @AfterMethod méthode annotée, vous pouvez fermer la connexion de votre base de données
Exemple :
@BeforeMethod(description='connect to database') public void beforemethod() throws SQLException{ //check database connection is up String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; DriverManager.getConnection(databaseurl, 'username', 'password'); }
@AfterMethod(description='close database connection') public void aftermethod() throws SQLException{ //check database connection is closed String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; Connection connect = DriverManager.getConnection(databaseurl, 'username', 'password'); if(connect!=null) connect.close(); }
# 5)@BeforeTest et @AfterTest
Dans @BeforTest méthode, vous pouvez définir vos préférences de profil firefox et @AfterTest méthode, vous pouvez mettre du code qui générera le résultat du test et l'envoyer par courrier aux parties prenantes
Exemple :
@BeforeTest (description='set your firefox profile preferences according to your project requirement') public void single_run(){ FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference ('browser.download.folderList',2); firefoxProfile.setPreference ('browser.download.manager.showWhenStarting',false); firefoxProfile.setPreference ('browser.download.dir','E:\reports\'); firefoxProfile.setPreference ('browser.helperApps.neverAsk.saveToDisk','csv'); driver = new FirefoxDriver(firefoxProfile); String baseUrl = 'www.gmail.com'; } @AfterTest (description='') public void teardown(){ //a code which will send the test details report }
L'aspect le plus important à noter ici lorsque vous travaillez avec des annotations est que votre système doit être équipé de la version Java 1.5 ou supérieure, sinon Eclipse peut afficher une erreur indiquant que les annotations ne sont pas prises en charge sur votre système.
Maintenant, considérez un cas où votre système a la bonne version de Java nécessaire pour les annotations mais l'erreur apparaît toujours.
Quelque chose comme ci-dessous:
Erreur de syntaxe, les annotations ne sont disponibles que si le niveau de la source est supérieur ou égal à 1,5.
Que ferez-vous maintenant? Il y a trois options pour remédier à cette situation.
Passons en revue un par un:
Option 1:
- Allez sur Eclipse et faites un clic droit sur votre projet
- Sélectionnez Propriétés
- Cliquez sur Java Compiler
- Assurez-vous que votre niveau de conformité du compilateur est égal ou supérieur à 1,5
- Enregistrez les paramètres et votre problème est résolu
Option 2:
- Aller à l'onglet Fenêtre dans Eclipse
- Sélectionnez Préférences
- Cliquez sur Java puis sur Compiler
- Assurez-vous que votre niveau de conformité du compilateur est égal ou supérieur à 1,5
- Enregistrez les paramètres et votre problème est résolu
Option 3:
Vérifiez votre chemin d'accès d'origine Java en définissant la variable de chemin d'environnement Java correcte.
Conclusion:
À travers cet article, nous avons essayé de discuter de certaines des annotations et attributs importants qui sont fréquemment utilisés par les testeurs. Cependant, il y a plus d'annotations dans TestNG qui ne sont pas fréquemment utilisées telles que @AfterGroups, @BeforeGroups et ainsi de suite qui sont utilisés lorsque vous travaillez avec des groupes dans votre script de test de projet.
Utilisez donc les annotations ci-dessus en fonction de vos besoins. Il est toujours conseillé de ne pas faire la configuration de votre projet en méthode de test. Dans la méthode de test, écrivez la logique métier principale qui doit être testée.
meilleur logiciel pour cloner un disque dur en ssd
Assurez-vous que votre système est équipé de versions Java 1.5 ou supérieures, sinon Eclipse pourrait afficher une erreur indiquant que les annotations ne sont pas prises en charge sur votre système.
J'espère que cet article vous aidera avec les annotations TestNG. Veuillez nous le faire savoir en cas de commentaires ou de questions.
lecture recommandée
- Comment utiliser le framework TestNG pour créer des scripts Selenium - Tutoriel TestNG Selenium # 12
- Tutoriel de recherche d'élément par texte de sélénium avec des exemples
- 30+ meilleurs tutoriels sur Selenium: Apprenez le sélénium avec de vrais exemples
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Script Selenium efficace et scénarios de dépannage - Tutoriel Selenium # 27
- Débogage de scripts Selenium avec des journaux (Tutoriel Log4j) - Tutoriel Selenium # 26
- Tutoriel Python DateTime avec des exemples