Creëer je eerste Cucumber Script (2 voorbeelden)

⚡ Slimme samenvatting

Cucumber Met scriptuitvoering kunt u Gherkin-scenario's in eenvoudige taal omzetten in uitvoerbare geautomatiseerde tests met behulp van stapdefinitiebestanden. Hierdoor kunnen teams gedrag valideren, de intentie delen met belanghebbenden en betrouwbare, op BDD gebaseerde projecten opleveren. Cucumber or Cucumber-JVM.

  • ???? De basisprincipes van augurken: Featurebestanden beschrijven scenario's in een Given-When-Then-structuur die zowel testers als business teams kunnen lezen.
  • 📝 Stapdefinities: Elke Gherkin-stap komt overeen met een codeblok geschreven in Ruby. Javaof een andere ondersteunde taal.
  • ⚙️ Projectopstelling: RubyMine of elke andere IDE kan de mappen 'features', 'step_definitions' en 'runner configuration' hosten.
  • Twee voorbeelden: Een vermenigvuldigingsscenario en een GuruHet demo-inlogscenario 99 demonstreert de volledige BDD-uitvoering.
  • 🧪 Moderne versies: Cucumber-JVM 7.x en Cucumber Ruby 9.x blijft de huidige stabiele release die in CI-pipelines wordt gebruikt.

Cucumber Script

In deze handleiding ga je het volgende maken: Cucumber Scripts om twee scenario's te testen met behulp van Gherkin-syntaxis en stapdefinitiebestanden. Cucumber is een populair BDD-framework dat Feature-bestanden in platte taal koppelt aan uitvoerbare testcode, zodat businessanalisten en ontwikkelaars kunnen samenwerken aan dezelfde specificaties.

Cucumber Script 1: Vermenigvuldig 2 Numbers

In deze eerste Cucumber Bijvoorbeeld, je schrijft een eenvoudig Feature-bestand dat twee getallen vermenigvuldigt en maakt vervolgens een bijbehorend Step Definition-bestand in Ruby. Dezelfde workflow is van toepassing als je gebruikmaakt van Cucumber-JVM 7.x met Java of Kotlin in IntelliJ IDEA.

Stap 1) Open RubyMine Editor via de Windows start menu.

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 2) Klik in de RubyMine-editor op 'Nieuw project maken'.

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 3) Selecteer de projectlocatie en klik op 'Maken'.

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 4) Maak een bestandsmap aan in de projectroot voor uw featurebestanden.

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 5) Geef de map de naam "Features". Cucumber Deze map wordt automatisch gescand.

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 6) Maak een bestand aan en sla het op in “jouwmap/functies/” met de naam “jouwbestandsnaam.functie”.

Klik hier als de video niet toegankelijk is

Cucumber Script:Vermenigvuldig 2 Numbers

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 7) Om het scenario uit te voeren, slaat u het volgende programma op in het Feature-bestand. Let op hoe Gherkin-sleutelwoorden zoals Feature, Scenario, Given, When en Then het testgedrag beschrijven.

Cucumber Script:Vermenigvuldig 2 Numbers

Code:

Feature: Multiplication 
  I multiply two numbers 
	Scenario: multiply a and b 
	  Given I have variable a 
	  And I have variable b 
      When I multiplication a and b 
      Then I display the Result

Stap 8) Voer nu uw eerste Feature-bestand uit.

Klik op "Opdrachtprompt starten met Ruby".

Cucumber Script:Vermenigvuldig 2 Numbers

De uitvoer die u ontvangt, wordt hieronder weergegeven.

Cucumber Script:Vermenigvuldig 2 Numbers

Je krijgt een foutmelding omdat je een stapdefinitiebestand moet schrijven dat overeenkomt met het featurebestand.

Stap 9) Maak een stapdefinitiebestand aan voor uw featurebestand.

Maak in de RubyMine-editor een nieuwe map aan met de naam "step_definition".

Cucumber Script:Vermenigvuldig 2 Numbers

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 10) Sla het bestand op in “jouwmap/functies/stapdefinities” met de naam test_step.rb.

Cucumber Script:Vermenigvuldig 2 Numbers

Cucumber Script:Vermenigvuldig 2 Numbers

Stap 11) Voeg de volgende code toe aan het bestand met de stapdefinitie. Elk blok komt overeen met een Gherkin-stap uit het featurebestand.

Cucumber Script:Vermenigvuldig 2 Numbers

Code :

Given(/^I have variable a$/) do 
  @a = 50
end

And(/^I have variable b$/) do 
  @b = 70 
end

When(/^I multiplication a and b$/) do 
  @mul = @a * @b
end

Then(/^I display the Result$/) do 
  puts "Multiplication of #{@a} and #{@b} is #{@mul}"
end

Stap 12) Voer het Feature-bestand opnieuw uit.

Cucumber Script:Vermenigvuldig 2 Numbers

Het resultaat is hieronder weergegeven.

Cucumber Script:Vermenigvuldig 2 Numbers

Cucumber Script 2: Controleer de uitvoer wanneer het e-mailadres is ingevoerd of niet

In dit tweede voorbeeld ga je Ruby gebruiken met Watir om een ​​browser aan te sturen en twee registratiescenario's te valideren op de Guru99 demo-sites. Dezelfde patronen gelden als u overstapt op een andere site. Cucumber-JVM 7.x met Selenium WebDriver en Java.

In dit voorbeeld gebruiken we Robijn.

TestscenarioControleer de uitvoer wanneer er GEEN e-mailadres is ingevoerd.

Teststappen:

  1. Open browser
  2. gaan naar https://demo.guru99.com/
  3. Do niet Voer e-mailadres in
  4. Klik op Verzenden

TestscenarioControleer de uitvoer wanneer het e-mailadres wordt ingevoerd.

Teststappen:

  1. Open browser
  2. gaan naar https://demo.guru99.com/
  3. Voer e-mailadres in
  4. Klik op Verzenden

Code in het functiebestand:

Feature: guru99 Demopage Login
To Login in Demopage we have to enter login details
Scenario: Register On Guru99 Demopage without email
Given I am on the Guru99 homepage
When enter blank details for Register
Then error email shown
Scenario: Register On Guru99 Demopage with valid email
Given I am on the Guru99 homepage
When enter details for Register
Then login details shown

Code in het stapdefinitiebestand:

require 'watir-webdriver'

require 'colorize'

browser = Watir::Browser.new

Given (/^I am on the Guru99 homepage$/)do

browser.goto "https://demo.guru99.com"

end

When (/^enter blank details for Register$/)do

browser.text_field(:name,"emailid").set(" ")

browser.button(:name,"btnLogin").click

end

Then (/^error email shown$/)do

puts " Email is Required".red

browser.close

end

When (/^enter details for Register$/)do

browser = Watir::Browser.new

browser.goto "https://demo.guru99.com"

browser.text_field(:name,"emailid").set("<a href="mailto:guru99@gmail.com">guru99@gmail.com</a>")

browser.button(:name,"btnLogin").click

end

Then (/^login details shown$/)do

puts " Sucessfully register"

browser.close

end

Voer de code uit in de opdrachtprompt en u ziet de volgende uitvoer.

Controleer de uitvoer wanneer het e-mailadres is ingevoerd of niet

Veelgestelde vragen

Een Feature-bestand is een platte tekstbestand met de extensie .feature dat de Gherkin-syntaxis gebruikt om één applicatiefunctie te beschrijven. Het groepeert gerelateerde Scenarios, geschreven met Given-, When- en Then-stappen, zodat niet-technische belanghebbenden het gedrag samen met ontwikkelaars kunnen lezen en valideren.

Elke stap in het Gherkin-proces bestaat alleen uit tekst. Cucumber Er is een stapdefinitie nodig die de stap koppelt aan uitvoerbare code in Ruby. Javaof een andere taal. Zonder die kaartpingDe runner meldt ongedefinieerde stappen en het scenario slaagt er niet in de beoogde logica uit te voeren.

Cucumber-JVM 7.x is de huidige stabiele versie en wordt aanbevolen voor nieuwe gebruikers. Java en Kotlin-projecten. Cucumber Ruby 9.x blijft de moderne keuze voor Ruby-teams. Beide releases ondersteunen JUnit 5. Parallelle uitvoering en filtering op basis van tags voor CI-pipelines.

AI-assistenten analyseren gebruikersverhalen, acceptatiecriteria en historische defecten om Gherkin-scenario's op te stellen in de Given-When-Then-structuur. Ze suggereren grensgevallen, alternatieve paden en tags, zodat BDD-teams meer gedrag kunnen afdekken zonder urenlang elk featurebestand handmatig te hoeven schrijven.

Ja. AI-tools lezen Feature-bestanden, koppelen elke Gherkin-stap aan bestaande code en genereren nieuwe Step Definition-methoden in Ruby of JavaZe genereren standaardcode, reguliere expressies voor parameters en assertiestubs, zodat ontwikkelaars zich alleen hoeven te richten op het verfijnen van de bedrijfslogica in plaats van elke verbindingsfunctie handmatig te schrijven.

Vat dit bericht samen met: