Concombre - Options de ligne de commande

Le concombre peut être utilisé pour tester presque tous les systèmes informatiques. Jusqu'à présent, nous avons vu comment exécuter un test en utilisant Eclipse IDE. Il existe un autre moyen d'exécuter le test Cucumber via l'interface de ligne de commande. Alors quel est l'avantage de le faire?

L'exécution de toute infrastructure de test à partir du terminal a ses propres avantages, tels que le remplacement des configurations d'exécution mentionnées dans le code.

Afin d'exécuter le test de concombre avec l'invite de commande, utilisez les étapes suivantes après la configuration du système.

Step 1- Créez un projet de test Maven nommé commandLine.

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

  • Ouvrez pom.xml -

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

    • Développez le projet CucumberTest.

    • Localiser pom.xml fichier.

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

    • Dans la balise dependencies, créez une 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é «outline» sous src / test / java

Step 3 - Créez un fichier de fonctionnalités nommé «commandLine.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 "commandLine.feature"

  • Écrivez ci-dessous le texte dans le fichier et enregistrez-le.

    Feature - Aperçu du scénario

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

    Étant donné que l'utilisateur navigue sur Facebook

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

    La connexion devrait alors échouer

Exemples

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

  • Nommez le fichier comme commandLine.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; i
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, 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, l'ensemble de 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 au fichier un nom 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 { }
  • Ouvrez une invite de commande.

  • Accédez au répertoire où réside ce package «commandLine». e: \ Workspace \ LoginTest \ src> cd test \ java

  • Exécutez la commande mvn test: Vous verrez que tout le scénario décrit dans le fichier de fonctionnalités a été exécuté (s'il n'y a pas d'erreur). Enfin, en bas, vous trouverez les informations suivantes.

Résultat

This describes the total test run, along with failure if any.

La commande précédente exécute tout comme mentionné dans la classe JUnit Runner. Cependant, si nous voulons remplacer les configurations mentionnées dans le Runner, voici les quelques exemples pour le faire.

  • Exécutez maintenant la commande mvn test - Dcucumber.options = "- help" sur l'invite de commande. L'exécution de ceci imprimera toutes les options disponibles.

  • Pour exécuter uniquement les balises spécifiques, exécutez la commande mvn test -Dcucumber.options = "- tags @SmokeTest" à l'invite de commande. Il exécutera uniquement les balises marquées @SmokeTest.

  • Pour changer le format du résultat, exécutez la commande E: \ Workspace \ LoginTest> mvn test -Dcucumber.options = "- plugin junit: target / cucumber-junit-report.xml" sur l'invite de commande Cela modifie le rapport format au générateur de rapport JUnit.