Skapa din första Cucumber Skript (2 exempel)

⚡ Smart sammanfattning

Cucumber Skriptkörning hjälper dig att omvandla Gherkin-scenarier i enkelt språk till körbara automatiserade tester med hjälp av Step Definition-filer, vilket gör det möjligt för team att validera beteende, dela avsikter mellan intressenter och leverera pålitliga BDD-drivna projekt. Cucumber or Cucumber-JVM.

  • 🥒 Grunderna i gurka: Funktionsfiler beskriver scenarier i Given-When-Then-syntax som både testare och affärsteam kan läsa.
  • 📝 Stegdefinitioner: Varje Ghurkin-steg mappas till ett kodblock skrivet i Ruby, Java, eller ett annat språk som stöds.
  • ⚙️ Projektinställning: RubyMine eller vilken IDE som helst kan vara värd för mapparna features, step_definitions och runner-konfiguration.
  • Två exempel: Ett multiplikationsscenario och ett Guru99 demo-inloggningsscenarier demonstrerar end-to-end BDD-körning.
  • 🧪 Moderna versioner: Cucumber-JVM 7.x och Cucumber Ruby 9.x är fortfarande de stabila utgåvor som används i CI-pipelines.

Cucumber Script

I den här handledningen kommer du att skapa Cucumber Skript för att testa två scenarier med hjälp av Gherkin-syntax och Step Definition-filer. Cucumber är ett populärt BDD-ramverk som kopplar samman funktionsfiler i enkelt språk med körbar testkod så att affärsanalytiker och utvecklare kan samarbeta kring samma specifikationer.

Cucumber Skript 1: Multiplicera 2 Numbers

I detta första Cucumber Till exempel skriver du en enkel Feature-fil som multiplicerar två tal och skapar sedan en matchande Step Definition-fil i Ruby. Samma arbetsflöde gäller om du använder Cucumber-JVM 7.x med Java eller Kotlin i IntelliJ IDEA.

Steg 1) Öppna RubyMine Editor via Windows start meny.

Cucumber Manus: Multiplicera 2 Numbers

Steg 2) I RubyMine Editor, klicka på Skapa nytt projekt.

Cucumber Manus: Multiplicera 2 Numbers

Steg 3) Välj projektplatsen och klicka på "Skapa".

Cucumber Manus: Multiplicera 2 Numbers

Steg 4) Skapa en filkatalog inuti projektets rotfil för dina Feature-filer.

Cucumber Manus: Multiplicera 2 Numbers

Steg 5) Namnge katalogen som "Funktioner". Cucumber kommer att skanna den här mappen automatiskt.

Cucumber Manus: Multiplicera 2 Numbers

Steg 6) Skapa och spara filen i "dinmapp/funktioner/" med namnet "dittfilnamn.funktion".

Klicka här. om videon inte är tillgänglig

Cucumber Manus: Multiplicera 2 Numbers

Cucumber Manus: Multiplicera 2 Numbers

Steg 7) För att köra scenariot, spara följande program i Feature-filen. Observera hur Gherkin-nyckelord som Feature, Scenario, Givet, When och Then beskriver testbeteendet.

Cucumber Manus: Multiplicera 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

Steg 8) Kör nu din första Feature-fil.

Klicka på "Starta kommandotolken med Ruby".

Cucumber Manus: Multiplicera 2 Numbers

Utdata du får visas nedan.

Cucumber Manus: Multiplicera 2 Numbers

Du kommer att se ett felmeddelande eftersom du måste skriva en stegdefinitionsfil som paras ihop med funktionsfilen.

Steg 9) Skapa en stegdefinitionsfil för din funktionsfil.

Skapa en ny mapp i RubyMine-editorn med namnet "step_definition".

Cucumber Manus: Multiplicera 2 Numbers

Cucumber Manus: Multiplicera 2 Numbers

Steg 10) Spara filen i "dinmapp/funktioner/steg_definitioner" med namnet test_steg.rb.

Cucumber Manus: Multiplicera 2 Numbers

Cucumber Manus: Multiplicera 2 Numbers

Steg 11) Skriv följande kod i stegdefinitionsfilen. Varje block mappas till ett Gherkin-steg från Feature-filen.

Cucumber Manus: Multiplicera 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

Steg 12) Kör Feature-filen igen.

Cucumber Manus: Multiplicera 2 Numbers

Resultatet visas nedan.

Cucumber Manus: Multiplicera 2 Numbers

Cucumber Skript 2: Verifiera utdata när e-post-ID skrivs in eller inte

I det här andra exemplet kommer du att använda Ruby med Watir att köra en webbläsare och validera två registreringsscenarier på Guru99 demosida. Samma mönster gäller om du använder Cucumber-JVM 7.x med Selenium Webdrivrutin och Java.

I det här exemplet använder vi Rubin.

TestscenarioVerifiera utdata när e-postadress INTE anges.

Teststeg:

  1. Öppna webbläsaren
  2. gå till https://demo.guru99.com/
  3. Do inte ange e-post-id
  4. Klicka på Skicka

TestscenarioVerifiera utdata när e-postadress anges.

Teststeg:

  1. Öppna webbläsaren
  2. gå till https://demo.guru99.com/
  3. Ange e-post-ID
  4. Klicka på Skicka

Code i funktionsfilen:

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 i stegdefinitionsfilen:

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

Kör koden i kommandotolken så ser du följande utdata.

Verifiera utdata när e-post-ID har angetts eller inte angetts

Vanliga frågor

En funktionsfil är en vanlig textfil med tillägget .feature som använder Gherkin-syntax för att beskriva en applikationsfunktion. Den grupperar relaterade scenarier skrivna med stegen Givet, När och Sedan så att icke-tekniska intressenter kan läsa och validera beteendet tillsammans med utvecklare.

Varje steg i Gherkin består endast av text. Cucumber behöver en stegdefinition som mappar steget till körbar kod i Ruby, Java, eller ett annat språk. Utan den kartanping, löparen rapporterar odefinierade steg och scenariot misslyckas med att utföra den avsedda logiken.

Cucumber-JVM 7.x är den nuvarande stabila linjen och rekommenderas för nya Java och Kotlin-projekt. Cucumber Ruby 9.x är fortfarande det moderna valet för Ruby-team. Båda utgåvorna stöder JUnit 5, parallell exekvering och taggbaserad filtrering för CI-pipelines.

AI-assistenter analyserar användarberättelser, acceptanskriterier och historiska defekter för att utarbeta Gherkin-scenarier i Given-When-Sedan-format. De föreslår gränsfall, alternativa sökvägar och taggförslag så att BDD-team täcker mer beteende utan att lägga timmar på att skriva varje Feature-fil för hand.

Ja. AI-verktyg läser Feature-filer, matchar varje Gherkin-steg med befintlig kod och skapar nya Step Definition-metoder i Ruby eller JavaDe genererar standardinställningar, parameterregex och assertion-stubbar så att utvecklare bara förfinar affärslogiken istället för att skriva varje glue-funktion för hand.

Sammanfatta detta inlägg med: