Concombre - Annotations

Annotationest un texte prédéfini, qui a une signification spécifique. Il permet au compilateur / interpréteur de savoir ce qui doit être fait lors de l'exécution. Le concombre a les quelques annotations suivantes -

  • Given -

    • Il décrit les prérequis pour que le test soit exécuté.

    • Exemple - DONNÉ que je suis un utilisateur Facebook

  • When -

    • Il définit le point de déclenchement de toute exécution de scénario de test.

    • Exemple - LORSQUE j'entre "<nom d'utilisateur>"

  • Then -

    • Contient ensuite le résultat attendu pour le test à exécuter.

    • Exemple - La connexion ALORS devrait réussir.

  • And -

    • Il fournit la condition logique ET entre deux instructions. AND peut être utilisé en conjonction avec les instructions GIVEN, WHEN et THEN.

    • Exemple - LORSQUE j'entre mon "<nom d'utilisateur>" ET que j'entre mon "<mot de passe>"

  • But -

    • Cela signifie une condition OU logique entre deux instructions. OR peut être utilisé en conjonction avec les instructions GIVEN, WHEN et THEN.

    • Exemple - La connexion ALORS devrait réussir. MAIS la page d'accueil ne doit pas manquer.

  • Scenario -

    • Les détails du scénario sous le test doivent être capturés après le mot-clé "Scénario:"

    • Exemple -

      Scénario:

      DONNÉ que je suis un utilisateur Facebook

      QUAND j'entre dans mon

      ET j'entre dans mon

      ALORS la connexion devrait être réussie.

      MAIS la page d'accueil ne doit pas manquer.

  • Scenario Outline - (à couvrir plus tard)

  • Examples - (à couvrir plus tard)

  • Background -

    • L'arrière-plan contient généralement des instructions sur ce qu'il faut configurer avant l'exécution de chaque scénario. Cependant, il est exécuté après le crochet «Avant» (à couvrir plus tard). C'est donc idéal pour être utilisé pour le code lorsque nous voulons configurer le navigateur Web ou que nous voulons établir la connectivité de la base de données.

      • Exemple -

        Contexte:

        Accédez à la page d'accueil Facebook.

Exemple de scénario

Automatisons un scénario afin de mieux comprendre les annotations.

Step 1

Créez un projet de test Maven nommé comme AnnotationTest.

  • Allez dans Fichier → Nouveau → Autres → Maven → Projet Maven → Suivant.

  • Fournissez un identifiant de groupe (l'identifiant de groupe identifiera votre projet de manière unique dans tous les projets).

  • Indiquez l'ID de l'artefact (l'ID de l'artefact est le nom du fichier JAR sans version. Vous pouvez choisir n'importe quel nom en minuscules).

  • Cliquez sur Terminer.

  • Ouvert pom.xml −

    • Accédez à l'explorateur de packages sur le côté gauche d'Eclipse.

    • Développez le projet AnnotationTest.

    • Recherchez le fichier pom.xml.

    • Cliquez avec le bouton droit et sélectionnez l'option Ouvrir avec «Éditeur de texte».

  • Ajouter une dépendance pour Selenium - Cela indiquera à Maven, quels fichiers jar Selenium doivent être téléchargés du référentiel central vers le référentiel local.

    • Open pom.xml est en mode édition, créez une balise de dépendances (<dependencies> </dependencies>), à l'intérieur de la balise de projet.

    • À l'intérieur de la balise dependencies, créez la balise dependency (<dependency> </dependency>).

    • Fournissez les informations suivantes dans la balise de dépendance.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Ajouter une dépendance pour Cucumber-Java - Cela indiquera à Maven, quels fichiers Cucumber doivent être téléchargés du référentiel central vers le référentiel local.

    • Créez une autre balise de dépendance.

    • Fournissez les informations suivantes dans la balise de dépendance.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Ajouter une dépendance pour Cucumber-JUnit - Cela indiquera à Maven, quels fichiers Cucumber JUnit doivent être téléchargés du référentiel central vers le référentiel local.

    • Créez une autre balise de dépendance.

    • Fournissez les informations suivantes dans la balise de dépendance.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Ajouter une dépendance pour JUnit - Cela indiquera à Maven, quels fichiers JUnit doivent être téléchargés du référentiel central vers le référentiel local.

    • Créez une autre balise de dépendance.

    • Fournissez les informations suivantes dans la balise de dépendance.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Vérifiez les binaires.

    • Une fois que pom.xml est modifié avec succès, enregistrez-le.

    • Allez dans Projet → Nettoyer - Cela prendra quelques minutes.

Step 2

Créez un package nommé Annotation sous src/test/java

  • Sélectionnez le projet nouvellement créé.

  • Cliquez avec le bouton droit de la souris et sélectionnez «Nouveau».

  • Sélectionnez l'option comme «Package».

  • Nommez-le comme «Annotation».

  • Sauvegarde le.

Step 3

Créez un fichier d'entités nommé annotation.feature.

  • Sélectionnez et cliquez avec le bouton droit sur le contour du package.

  • Cliquez sur "Nouveau" fichier.

  • Donnez au fichier un nom tel que outline.feature.

  • Écrivez le texte suivant dans le fichier et enregistrez-le.

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Step 4

Créez un fichier de définition d'étape.

  • Sélectionnez et cliquez avec le bouton droit sur le contour du package.

  • Cliquez sur "Nouveau" fichier.

  • Donnez le nom du fichier comme annotation.java

  • Écrivez le texte suivant dans le fichier et enregistrez-le.

package Annotation; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") 
	
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   }
	
   @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }
	
   @When ("^I enter password as \"(.*)\"$") 
   public void enterPassword(String arg1) {
      driver.findElement(By.id("pass")).sendKeys(arg1);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   }
	
   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
}

Step 5

Créez un fichier de classe de coureur.

  • Sélectionnez et cliquez avec le bouton droit sur le contour du package.

  • Cliquez sur "Nouveau" fichier.

  • Donnez au fichier un nom, tel que runTest.java

  • Écrivez le texte suivant dans le fichier et enregistrez-le.

package Annotation; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

public class runTest { }

Step 6

Exécutez le test en utilisant l'option -

  • Sélectionnez le fichier runTest.java dans l'explorateur de packages.

  • Faites un clic droit et sélectionnez l'option ‘Run as’

  • Sélectionnez le test JUnit.

Vous observerez les choses suivantes lorsque vous exécuterez ce fichier de classe -

  • Facebook s'ouvre dans une nouvelle instance de navigateur Web Firefox.

  • TOM sera transmis comme entrée dans le champ du nom d'utilisateur.

  • JERRY sera passé comme entrée dans le champ du mot de passe.

  • La connexion sera cliquée.

  • Un message sera affiché sur le navigateur concernant l'échec de la connexion.

  • Dans la console, vous verrez «Test réussi» imprimé

  • Résultat de l'étape 1. à 5. Sera réexécuté pour le nom d'utilisateur comme "" et le mot de passe comme "".