Augurktaal: formaat, syntaxis en augurktest in Cucumber

Wat is augurkentaal?

augurkje is een zakelijk leesbare taal die u helpt om zakelijk gedrag te beschrijven zonder in details van de implementatie te treden. Het is een domeinspecifieke taal voor het definiëren van tests in Cucumber formaat voor specificaties. Het gebruikt gewone taal om use cases te beschrijven en stelt gebruikers in staat om logische details uit gedragstests te verwijderen.

De tekst in de augurkentaal fungeert als documentatie en skelet van uw geautomatiseerde tests. Het augurkenformaat is gebaseerd op TreeTop Grammatica, die in meer dan 37 talen bestaat. Daarom kun je je augurk in 37+ gesproken talen schrijven.

Dit script dient twee primaire doelen:

  • Documenteert gebruikersscenario's
  • Een geautomatiseerde test schrijven (BDD)

Waarom augurk?

De noodzaak van Gherkin kan eenvoudig worden uitgelegd aan de hand van de volgende afbeeldingen

Vóór augurk

Vóór augurk

Na Augurk

Na Augurk

Augurk Syntax

Augurk is lijngeoriënteerde taal, net als YAML en Python. Elke regel heet stap en begint met trefwoord en eindigt met een stop. Voor de inspringing wordt een tab of spatie gebruikt.

In dit script kun je waar je maar wilt een opmerking toevoegen, maar deze moet beginnen met een #-teken. Het las elke regel na het verwijderen van de trefwoorden van Ghrekin zoals opgegeven, wanneer, toen, enz.

Typische Augurk-stappen zien eruit

Gherkin Scripts: verbindt het menselijke concept van oorzaak en gevolg met het softwareconcept van input/proces/output.

Augurk Syntax

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Een augurkdocument heeft de extensie .feature en is simpelweg een testbestand met een mooie extensie. Cucumber leest het Gherkin-document en voert een test uit om te valideren dat de software zich gedraagt ​​volgens de Gherkin-syntaxis.

Belangrijke termen die worden gebruikt in augurk

  • Kenmerk
  • Achtergrond
  • Scenario
  • Gegeven
  • .
  • Dan
  • En
  • Maar
  • Voorbeelden van scenariooverzichten

Voor de featurenaam wordt de naamgevingsconventie gebruikt. Er zijn echter geen vaste regels voor Cucumber over namen.

Kenmerk

Het bestand moet de extensie .feature hebben en elk featurebestand mag slechts één feature hebben. Het feature-trefwoord is bij de Feature: en daarna wordt er een spatie en naam van de feature geschreven.

Scenario

Elk featurebestand kan meerdere scenario's bevatten, en elk scenario begint met Scenario: gevolgd door de scenarionaam.

Achtergrond

Achtergrondzoekwoord helpt u om wat context aan het scenario toe te voegen. Het kan enkele stappen van het scenario bevatten, maar het enige verschil is dat het vóór elk scenario moet worden uitgevoerd.

Gegeven

Het gebruik van het trefwoord Gegeven is om het systeem in een vertrouwde staat te brengen voordat de gebruiker interactie met het systeem begint. U kunt echter het schrijven van gebruikersinteracties in de gegeven stappen achterwege laten als deze in de stap “Voorwaarde” zijn gegeven.

Syntax:

Given
Given - a test step that defines the 'context
Given I am on "/."

.

Wanneer de stap bestaat uit het definiëren van de actie die door de gebruiker wordt uitgevoerd.

Syntax:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Dan

Het gebruik van het trefwoord 'dan' is om het te zien resultaat na de actie in wanneer stap. U kunt echter alleen merkbare veranderingen verifiëren.

Syntax:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

En maar

Mogelijk hebt u meerdere gegeven wanneer of dan.

Syntax:

But
A But - additional test step which defines the 'action' 'outcome.'
But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed
And I write  "EmailAddress" with "Tomjohn@gmail.com."

Gegeven, Wanneer, Dan en, maar zijn teststappen. Je kunt ze door elkaar gebruiken. De tolk geeft geen enkele fout weer. Ze zullen echter zeker geen enkele betekenis hebben als ze worden gelezen.

Belangrijke termen die worden gebruikt in augurk
Belangrijke termen die worden gebruikt in augurk
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Augurk voorbeelden

Voorbeeld 1:

Feature:  Login functionality of social networking site Facebook. 
Given:  I am a facebook user. 
When: I enter username as username. 
And I enter the password as the password 
Then I should be redirected to the home page of facebook 

Het hierboven genoemde scenario betreft een functie genaamd gebruikersaanmelding.

Augurk analyseert elke stap die in het stapdefinitiebestand is geschreven. Daarom worden de stappen gegeven in het featurebestand en moet het stapdefinitiebestand overeenkomen.

Voorbeeld 2:

Feature: User Authentication Background:
Given the user is already registered to the website Scenario:
Given the user is on the login page
When the user inputs the correct email address
And the user inputs the correct password
And the user clicks the Login button
Then the user should be authenticated
And the user should be redirected to their dashboard
And the user should be presented with a success message 

Beste praktijken voor het gebruik van augurk

  • Elk scenario moet afzonderlijk worden uitgevoerd
  • Elke functie zou mee moeten kunnen worden uitgevoerd
  • Stappeninformatie moet onafhankelijk worden weergegeven
  • Verbind uw Scenario's met uw vereisten
  • Houd volledig bij welke scenario's in een vereistendocument moeten worden opgenomen
  • Creëer modulaire en gemakkelijk te begrijpen stappen
  • Probeer al uw veelvoorkomende scenario's te combineren

Voordelen van augurk

  • Augurk is eenvoudig genoeg om te begrijpen voor niet-programmeurs
  • Programmeurs kunnen het gebruiken als een zeer solide basis om hun tests te starten
  • Het maakt User Stories makkelijker verteerbaar
  • Het augurkscript kan gemakkelijk worden begrepen door bedrijfsleiders en ontwikkelaars
  • Gherkin Testing richt zich op de zakelijke vereisten
  • Een aanzienlijk deel van de functionele specificaties is geschreven als user stories
  • U hoeft geen expert te zijn om de kleine Augurk-opdrachtenset te begrijpen
  • Gherkin Test cases koppelen acceptatietests direct aan geautomatiseerde tests
  • De schrijfstijl van testcases is gemakkelijker om code in andere tests te hergebruiken

Nadelen van augurk

  • Het vereist een hoog niveau van zakelijke betrokkenheid en samenwerking
  • Werkt mogelijk niet goed in alle scenario's
  • Slecht geschreven tests kunnen de onderhoudskosten van de test gemakkelijk verhogen

Samenvatting

  • Augurk is het formaat voor komkommerspecificaties
  • Augurk is lijngeoriënteerde taal, net als YAML en Python
  • Gherkin Scripts verbindt het menselijke concept van oorzaak en gevolg met het softwareconcept van input/proces en output
  • Functie, Achtergrond, Scenario, Gegeven, Wanneer, Dan en Maar worden belangrijk gebruikt in Augurk
  • In Augurk moet elk scenario afzonderlijk worden uitgevoerd
  • Het grootste voordeel van Augurk is eenvoudig genoeg voor niet-programmeurs om te begrijpen
  • Augurkentest werkt mogelijk niet goed in alle soorten scenario's