Concombre - Aperçu du scénario

Scenario outlineremplace fondamentalement la variable / les mots-clés par la valeur de la table. Chaque ligne du tableau est considérée comme un scénario.

Continuons avec le même exemple de fonctionnalité de connexion Facebook. Jusqu'à présent, nous avons exécuté un scénario: après avoir fourni le nom d'utilisateur correct, la connexion est réussie. Maintenant, supposons que nous voulions vérifier si la connexion est réussie pour les trois types d'entrées possibles, qui sont le nom d'utilisateur, l'adresse e-mail ou le numéro de téléphone. Pour y parvenir, nous devrons écrire trois scénarios différents, où chaque scénario variera en fonction du type d'entrée, la connexion est réussie. Dans ce cas, les scénarios ressembleront à ce qui suit.

Scenario:

L'utilisateur donné accède à Facebook

Lorsque j'entre le nom d'utilisateur et le mot de passe corrects

Ensuite, la connexion devrait réussir

Scenario:

L'utilisateur donné accède à Facebook

Lorsque je saisis une adresse e-mail et un mot de passe corrects

Ensuite, la connexion devrait réussir

Scenario:

L'utilisateur donné accède à Facebook

Lorsque j'entre le numéro de téléphone et le mot de passe corrects

Ensuite, la connexion devrait réussir

Ici, si nous voyons de près, pour les trois scénarios ci-dessus: les déclarations sont les mêmes, seul le paramètre d'entrée (nom d'utilisateur / adresse e-mail / numéro de téléphone) change. C'est là que l'importance de la description du scénario entre en scène.

Lorsque nous définissons un scénario avec un aperçu de scénario, nous pouvons spécifier un scénario de test et au bas de celui-ci, nous pouvons fournir un certain nombre d'entrées. Le scénario sera exécuté autant de fois que le nombre d'entrées fournies.

Exemple

Créons un exemple de plan de scénario -

Step 1 - Créez un projet de test Maven nommé comme ScenarioOutlineTest

  • 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 CucumberTest.

    • 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>
  • 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é «contour» sous src/test/java

Step 3 - Créez un fichier d'entités nommé “outline.feature”

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

  • Cliquez sur "Nouveau" fichier.

  • Donnez le nom du fichier tel que “outline.feature”

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

      Feature - Aperçu du scénario

      Scenario Outline - Fonctionnalité de connexion pour un site de réseautage social.

      L'utilisateur donné accède à Facebook

      Lorsque j'entre le nom d'utilisateur comme "<username>" et le mot de passe comme "<mot de passe>"

      La connexion devrait alors échouer

Example -

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Ici, un exemple d'annotation décrit la plage d'entrée à fournir lors de l'exécution du scénario. Le scénario de test sera exécuté pour chacune des entrées fournies. Ainsi, dans l'exemple donné, le scénario de test sera exécuté trois fois.

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 stepdefinition.java

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

package Outline;
 
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 stepdefinition { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") 
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") 
   public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
      driver.findElement(By.id("email")).sendKeys(arg1);
      driver.findElement(By.id("pass")).sendKeys(arg2);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^login should be unsuccessful$") 
   public void validateRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
      "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
         System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   }    
}

Note- Dans le code ci-dessus, nous devons définir une fonction ayant deux arguments d'entrée: un nom d'utilisateur et l'autre sera pour mot de passe. Ainsi, pour chaque ensemble d'entrées fourni dans l'exemple de balise, Set of GIVEN, WHEN et THEN sera exécuté.

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 le nom du fichier tel que runTest.java

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

package Outline; 

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

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

public class runTest { }
  • Exécutez le test en utilisant l'option -

    • Sélectionner runTest.java fichier de 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.

  • Le nom d'utilisateur1 et le mot de passe1 seront transmis en tant qu'entrée dans le champ nom d'utilisateur et 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 Pass» imprimé.

  • Les résultats des étapes 1 à 5 seront réexécutés pour username2 et password2.

En bref, lorsque le scénario ne change pas mais que seule la valeur des données est modifiée, il est conseillé d'utiliser des tableaux de données de plan de scénario.