cucumber
Augurken Syntaxis
Zoeken…
Invoering
Augurk is een voor bedrijven leesbare taal voor testautomatisering en testdocumentatie. Het wordt begrepen door Komkommer en bestaat samen als een gedragsgedreven ontwikkelingstool.
Syntaxis
- Functie: dit trefwoord geeft aan dat wat volgt een basisbeschrijving of naam is van de functie die wordt getest of gedocumenteerd.
- Achtergrond: dit trefwoord geeft stappen aan die worden uitgevoerd vóór elk scenario in de functie.
- Scenario: dit trefwoord vertegenwoordigt de naam of basisbeschrijving van een bepaald scenario dat de functie test.
- Scenario-overzicht: dit trefwoord geeft aan dat het scenario N keer wordt uitgevoerd voor elk argument dat wordt vermeld in voorbeelden die expliciet worden doorgegeven door de kolomnaam tussen vierkante haakjes.
- Voorbeelden: dit trefwoord noteert de lijst met statische argumenten die worden doorgegeven aan een scenariooverzicht.
- Gegeven: dit trefwoord vertegenwoordigt een gegeven stap of voorwaarde die wordt verondersteld voordat wordt doorgegaan. In het Arrange, Act, Assert-paradigma, staat voor "Arrange".
- Wanneer: dit trefwoord vertegenwoordigt een wanneer-stap of het gedrag waartegen moet worden opgetreden. In het Arrange, Act, Assert paradigma, gegeven vertegenwoordigt "Act".
- Vervolgens: dit trefwoord vertegenwoordigt een stap dan, oftewel de stap waarin het resultaat van een gedrag wordt gevalideerd. In het Arrange, Act vertegenwoordigt Assert-paradigma "Assert".
- En: dit zoekwoord wordt gebruikt in combinatie met een van de bovenstaande zoekwoorden. Als je twee gegeven uitspraken hebt, in plaats van expliciet tweemaal tweemaal gegeven te geven, kun je zeggen: "A en B gegeven".
De basis
Dit voorbeeld gaat over de basisstructuur van een komkommer-functiebestand in augurk. Functiebestanden gebruiken verschillende trefwoorden in de basissyntaxis.
Laten we eens kijken naar de basiszoekwoorden:
- Functie: dit trefwoord geeft aan dat wat volgt een basisbeschrijving of naam is van de functie die wordt getest of gedocumenteerd.
- Scenario: dit trefwoord vertegenwoordigt de naam of basisbeschrijving van een bepaald scenario dat de functie test.
- Gegeven dit sleutelwoord vertegenwoordigt een gegeven stap, of voorwaarde die wordt verondersteld alvorens verder te gaan. In het Arrange, Act, Assert-paradigma, staat voor "Arrange".
- Wanneer dit zoekwoord een stap wanneer vertegenwoordigt, of het gedrag waartegen moet worden beweerd. In het Arrange, Act, Assert paradigma, gegeven vertegenwoordigt "Act".
- Dan vertegenwoordigt dit sleutelwoord een stap dan, of met andere woorden, de stap waarin het resultaat van een gedrag wordt gevalideerd. In het Arrange, Act vertegenwoordigt Assert-paradigma "Assert".
- En dit zoekwoord wordt gebruikt in combinatie met een van de bovenstaande zoekwoorden. Als je twee gegeven uitspraken hebt, in plaats van expliciet tweemaal tweemaal gegeven te geven, kun je zeggen: "A en B gegeven".
- Maar dit trefwoord wordt gebruikt in combinatie gegeven , wanneer en dan om aan te geven dat er iets niet zou moeten gebeuren. Dan A maar niet B.
Alle zoekwoorden moeten op een nieuwe regel staan en moeten het eerste woord op een nieuwe regel zijn om te worden herkend door de augurk-parser. De trefwoorden Feature en Scenario moeten onmiddellijk daarna een dubbele punt hebben, zoals weergegeven in het onderstaande voorbeeld. Gegeven, wanneer, dan en en hebben geen dubbele punt nodig.
Naast trefwoorden kunt u beschrijvingen en opmerkingen schrijven. Beschrijvingen vinden plaats achter het trefwoord, maar op dezelfde regel, terwijl opmerkingen voorkomen op regels onder de zoekwoorden. Bij het schrijven van opmerkingen over functies is het gebruikelijk om expliciete regels te geven met randen en voorwaarden die leiden tot verschillende uitkomsten van gedrag.
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
Geparametriseerde stappen
Bij het schrijven van Gherkin kunnen er momenten zijn waarop u uw stappen voor herbruikbaarheid wilt instellen door de ingenieur die de testplannen uitvoert. Stappen ontvangen parameters via groepen voor het vastleggen van reguliere expressies. ( Technische opmerking: als u geen overeenkomende parameters hebt voor elke vastleggroep in uw reguliere expressie, kunt u verwachten dat een "Komkommeruitzondering: Arism mismatch" wordt weergegeven) In het onderstaande voorbeeld hebben we besloten argumenten ook in dubbele aanhalingstekens te plaatsen als gehele getallen als argumenten accepteren.
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
Feature Achtergrond
Zoals je misschien in het bovenstaande voorbeeld hebt opgemerkt, herschrijven we dezelfde stap meerdere keren:
Given the user is on the login page
Dit kan uitzonderlijk vervelend zijn, vooral als we meer dan één gegeven stap hebben die wordt hergebruikt. Gherkin biedt hiervoor een oplossing door ons een ander trefwoord te geven om mee te werken: Achtergrond:.
Het achtergrondzoekwoord dient om de onderliggende stappen uit te voeren vóór elk scenario in de functie. Zorg ervoor dat u geen achtergrondstap toevoegt, tenzij u zeker weet dat dit voor elk scenario nodig is. Net als de andere zoekwoorden wordt Achtergrond gevolgd door een beschrijving of naam en kunnen opmerkingen eronder worden weergegeven. Net als Feature en Scenario, moet Background worden gevolgd door een dubbele punt.
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
Scenario overzicht
In sommige gevallen wilt u misschien hetzelfde scenario steeds opnieuw uitvoeren, waarbij u de argumenten vervangt. In dit geval biedt Gherkin verschillende nieuwe trefwoorden om aan deze situatie tegemoet te komen, Scenariooverzicht: en Voorbeeld:. Het sleutelwoord Scenario Outline vertelt Komkommer dat het scenario meerdere keren wordt uitgevoerd, waarbij argumenten uit een lijst worden vervangen. Het sleutelwoord Voorbeelden wordt aangeroepen voordat de lijst expliciet wordt vermeld. Argumenten voor scenario-omtrekken moeten tussen haakjes worden gewikkeld. Merk in het onderstaande voorbeeld op dat de argumentnamen tussen de haakjes overeenkomen met de kolomnamen die worden vermeld onder Voorbeelden. Elke kolom wordt gescheiden door verticale balken, met kolomnamen op de eerste rij.
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 |
Tags
Voor documentatie dient u misschien testplannen of scenario's op categorieën te filteren. Ontwikkelaars willen misschien tests uitvoeren op basis van dezelfde categorieën. Met Gherkin kunt u functies en individuele scenario's categoriseren via de gebruiker van tags. In het onderstaande voorbeeld ziet u dat het bovenstaande sleutelwoord de tag '@Automation' is. Gherkin herkent dit als een tag door de gebruiker van het "@" symbool. In dit voorbeeld wil de ingenieur duidelijk maken dat deze tests worden gebruikt voor automatisering, waarbij niet elke test automatiseerbaar is, sommige tests moeten handmatig worden uitgevoerd.
Merk ook op dat de tag @Production is toegevoegd aan het scenario voor testen van gebruikersvergrendeling. In dit voorbeeld is dit omdat dit scenario alleen actief is in de productieomgeving van de toepassing. De ontwikkelaars willen niet dat hun sandbox-accounts worden geblokkeerd tijdens de ontwikkeling. Met deze tags kunnen ze afdwingen dat deze test alleen wordt uitgevoerd tegen de productieomgeving.
Ten slotte heeft het scenariooverzicht de tag @Staging. In dit voorbeeld is dit omdat de accounts die worden gebruikt, gefaseerde accounts zijn en niet werken in de andere omgevingen. Net als de tag @Production zorgt dit ervoor dat deze tests alleen in de Staging-omgeving worden uitgevoerd.
Dit zijn slechts enkele voorbeelden van waar, hoe en waarom u tags kunt gebruiken. Uiteindelijk zullen deze tags betekenis hebben voor u en de ontwikkelaars en ze kunnen van alles zijn en worden gebruikt om te categoriseren zoals u wilt.
@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 |
Augurk Tips
- Elk scenario test één gedrag
- Scenario's zijn op declaratieve wijze geschreven
- Vermijd incidentele details in het scenario
- Laat het voor de hand liggende
- Vermijd conjunctieve stappen
- Houd uw scenario's kort
- Er zijn niet veel scenario's in dezelfde functie
- Gebruik beschrijvende scenarianamen
- Heb slechts één wanneer stap
- Gebruik de "moet" in de stappen Dan