cucumber
Syntaxe du cornichon
Recherche…
Introduction
Gherkin est un langage lisible par l'entreprise pour l'automatisation des tests et la documentation de test. Cucumber le comprend et, ensemble, il constitue un outil de développement axé sur le comportement.
Syntaxe
- Fonctionnalité: ce mot-clé signifie que ce qui suit est une description de base ou un nom de la fonctionnalité testée ou documentée.
- Background: ce mot-clé indique les étapes à exécuter avant chaque scénario de la fonctionnalité.
- Scénario: ce mot clé représente le nom ou la description de base d'un scénario particulier testant la fonctionnalité.
- Aperçu du scénario: Ce mot-clé signifie que le scénario exécutera N fois pour chaque argument répertorié dans les exemples explicitement transmis par le nom de la colonne, entre crochets.
- Exemples: ce mot clé indique la liste des arguments statiques qui seront transmis dans une structure de scénario.
- Étant donné que ce mot clé représente une étape donnée ou une condition préalable supposée avant de continuer. Dans l'Arrange, Act, le paradigme Assert, donné représente "Arranger".
- When: ce mot-clé représente un step ou le comportement contre lequel il faut agir. Dans l'Arrange, Act, Assert paradigm, donné représente "Act".
- Ensuite: ce mot-clé représente une étape puis, autrement dit, l'étape de validation du résultat d'un comportement. Dans l'Arrange, Act, le paradigme Assert, donné représente "Assert".
- Et: Ce mot-clé est utilisé avec l'un des mots-clés ci-dessus. Si vous avez deux déclarations données, au lieu d'appeler explicitement deux fois donné, vous pouvez dire "donné A et B".
Les bases
Cet exemple passera en revue la structure de base d’un fichier de caractéristiques de concombre dans Gherkin. Les fichiers de fonctionnalités utilisent plusieurs mots-clés dans la syntaxe de base.
Regardons les mots-clés de base:
- Fonctionnalité: ce mot-clé signifie que ce qui suit est une description de base ou un nom de la fonctionnalité testée ou documentée.
- Scénario: ce mot clé représente le nom ou la description de base d'un scénario particulier testant la fonctionnalité.
- Étant donné que ce mot clé représente une étape donnée ou une condition préalable qui est supposée avant de continuer. Dans l'Arrange, Act, le paradigme Assert, donné représente "Arranger".
- Lorsque ce mot-clé représente une étape ou le comportement contre lequel Dans l'Arrange, Act, Assert paradigm, donné représente "Act".
- Ensuite , ce mot - clé représente une étape puis, autrement dit, l'étape dans laquelle est validé le résultat d'un comportement. Dans l'Arrange, Act, le paradigme Assert, donné représente "Assert".
- Et Ce mot-clé est utilisé conjointement avec l'un des mots-clés ci-dessus. Si vous avez deux déclarations données, au lieu d'appeler explicitement deux fois donné, vous pouvez dire "donné A et B".
- Mais ce mot-clé est utilisé en conjonction avec Given , When et Then pour signifier que quelque chose ne doit pas arriver. Alors A mais pas B.
Tous les mots-clés doivent figurer sur une nouvelle ligne et doivent être le premier mot d'une nouvelle ligne pour être reconnus par l'analyseur de Gherkin. Les mots-clés Feature et Scenario doivent comporter un signe deux-points immédiatement après, comme indiqué dans l'exemple ci-dessous. Étant donné, Quand, Alors et Et ne nécessitent pas de deux-points.
En plus des mots-clés, vous pouvez écrire des descriptions et des commentaires. Les descriptions se produisent après le mot-clé mais sur la même ligne, où des commentaires apparaissent sur les lignes sous les mots-clés. Lors de la rédaction de commentaires sur les fonctionnalités, il est d'usage de fournir des règles explicites décrivant les limites et les conditions qui conduisent à des résultats différents des comportements.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
Given the user is on the login page
When the user signs in with valid credentials
Then the user should be logged in
Étapes paramétrées
Lors de l'écriture de Gherkin, il peut arriver que vous souhaitiez paramétrer les étapes de réutilisation par l'ingénieur qui implémente les plans de test. Les étapes reçoivent des paramètres via des groupes de capture d'expression régulière. ( Note d'ingénierie: Si vous ne disposez pas de paramètres correspondants pour chaque groupe de capture dans votre expression régulière, vous pouvez vous attendre à une incompatibilité "CucumberException: Arity") Dans l'exemple ci-dessous, nous avons décidé comme accepter les entiers comme arguments.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
Given the user is on the login page
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
Given the user is on the login page
When the user signs in with "invalid" credentials
Then the user should be logged in
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
Given the user is on the login page
When the user fails to log in 3 times
Then the user should be locked out of their account
Arrière-plan de la fonctionnalité
Comme vous l'avez peut-être remarqué dans l'exemple ci-dessus, nous réécrivons plusieurs fois la même étape:
Given the user is on the login page
Cela peut être exceptionnellement fastidieux, surtout si plusieurs étapes sont réutilisées. Gherkin fournit une solution pour cela en nous donnant un autre mot-clé pour travailler avec: Background:.
Le mot-clé background sert à exécuter les étapes déclarées sous chaque mot-clé de la fonctionnalité. Veillez à ne pas ajouter d'étape d'arrière-plan, sauf si vous êtes certain que cela est nécessaire pour chaque scénario. Comme les autres mots-clés, Background est suivi d'une description ou d'un nom et peut contenir des commentaires. Tout comme la fonction et le scénario, l'arrière-plan doit être suivi d'un deux-points.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
When the user signs in with "invalid" credentials
Then the user should be logged in
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
When the user fails to log in 3 times
Then the user should be locked out of their account
Plan du scénario
Dans certains cas, vous souhaiterez peut-être réexécuter le même scénario encore et encore, en remplaçant les arguments. Dans ce cas, Gherkin fournit plusieurs nouveaux mots-clés pour prendre en compte cette situation, Aperçu du scénario: et Exemple:. Le mot clé Contour de scénario indique à Cucumber que le scénario va s'exécuter plusieurs fois en substituant les arguments d'une liste. Le mot-clé Examples est appelé avant que la liste ne soit explicitement notée. Les arguments pour les schémas de scénario doivent être entourés de crochets. Dans l'exemple ci-dessous, notez que les noms des arguments placés entre les crochets correspondent aux noms de colonne répertoriés sous Exemples. Chaque colonne est séparée par des barres verticales, avec des noms de colonne sur la première ligne.
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario Outline: The user successfully logs in with their account
This scenario outlines tests in which various users attempt
to sign in successfully
When the user enters their <username>
And the user enters their <password>
Then the user should be successfully logged on
Examples:
| username | password |
| frank | 1234 |
| jack | 4321 |
Mots clés
Pour les besoins de la documentation, vous pouvez filtrer les plans de test ou les scénarios par catégories. Les développeurs peuvent vouloir exécuter des tests basés sur ces mêmes catégories. Gherkin vous permet de classer les fonctionnalités ainsi que les scénarios individuels via l'utilisateur des tags. Dans l'exemple ci-dessous, notez que le mot clé ci-dessus est la balise "@Automation". Gherkin reconnaît cela comme une étiquette par l'utilisateur du symbole "@". Dans cet exemple, l'ingénieur souhaite préciser que ces tests sont utilisés pour l'automatisation, lorsque tous les tests ne sont pas automatisables, certains tests doivent être effectués manuellement.
Notez également que la balise @Production a été ajoutée au verrouillage de l'utilisateur du test de scénario. Dans cet exemple, cela est dû au fait que ce scénario est uniquement actif dans l'environnement de production de l'application. Les développeurs ne veulent pas que leurs comptes sandbox soient bloqués pendant le développement. Cette balise leur permet de faire en sorte que ce test ne soit exécuté que sur l'environnement de production.
Enfin, l'aperçu du scénario porte la balise @Staging. Pour les besoins de cet exemple, cela est dû au fait que les comptes utilisés sont des comptes intermédiaires et ne fonctionnent pas dans les autres environnements. Comme pour le tag @Production, cela garantit que ces tests ne seront exécutés que dans l'environnement de stockage intermédiaire.
Ce ne sont que quelques exemples de où, comment et pourquoi vous pourriez utiliser des tags. En fin de compte, ces balises auront un sens pour vous et les développeurs et peuvent être n'importe quoi et utilisées pour classer comme bon vous semble.
@Automation
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
When the user signs in with "invalid" credentials
Then the user should be logged in
@Production
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
When the fails to log in 3 times
Then the user should be locked out of their account
@Staging
Scenario Outline: The user successfully logs in with their account
This scenario outlines tests in which various users attempt
to sign in successfully
When the user enters their <username>
And the user enters their <password>
Then the user should be successfully logged on
Examples:
| username | password |
| frank | 1234 |
| jack | 4321 |
Bouts de cornichons
- Chaque scénario teste un comportement
- Les scénarios sont écrits de manière déclarative
- Évitez les détails accessoires à l'intérieur du scénario
- Omettre l'évidence
- Eviter les étapes conjonctives
- Gardez vos scénarios courts
- Ne pas avoir beaucoup de scénarios dans la même fonctionnalité
- Utiliser des noms de scénarios descriptifs
- N'en avoir qu'un quand pas
- Utilisez le “devrait” dans Etapes