Lag din første Cucumber Skript (2 eksempler)

⚡ Smart oppsummering

Cucumber Skriptkjøring hjelper deg med å gjøre enkle Gherkin-scenarier om til kjørbare automatiserte tester ved hjelp av Step Definition-filer, slik at team kan validere atferd, dele intensjon på tvers av interessenter og sende pålitelige BDD-drevne prosjekter videre. Cucumber or Cucumber-JVM.

  • 🥒 Grunnleggende om sylteagurk: Funksjonsfiler beskriver scenarier i Gitt-Når-Så-syntaks som både testere og forretningsteam kan lese.
  • 📝 Trinndefinisjoner: Hvert Gherkin-trinn tilordnes en kodeblokk skrevet i Ruby, Java, eller et annet støttet språk.
  • ⚙️ Prosjektoppsett: RubyMine eller et hvilket som helst IDE kan være vert for features-mappen, step_definitions-mappen og runner-konfigurasjonen.
  • To eksempler: Et multiplikasjonsscenario og et Guru99 demo-innloggingsscenarioer demonstrerer ende-til-ende BDD-utførelse.
  • 🧪 Moderne versjoner: Cucumber-JVM 7.x og Cucumber Ruby 9.x er fortsatt de nåværende stabile utgivelsene som brukes på tvers av CI-pipelines.

Cucumber Script

I denne veiledningen skal du lage Cucumber Skript for å teste to scenarier ved hjelp av Gherkin-syntaks og Step Definition-filer. Cucumber er et populært BDD-rammeverk som kobler funksjonsfiler i enkeltspråk med kjørbar testkode, slik at forretningsanalytikere og utviklere kan samarbeide om de samme spesifikasjonene.

Cucumber Skript 1: Multipliser 2 Numbers

I dette første Cucumber For eksempel skal du skrive en enkel Feature-fil som multipliserer to tall og deretter opprette en matchende Step Definition-fil i Ruby. Den samme arbeidsflyten gjelder hvis du bruker Cucumber-JVM 7.x med Java eller Kotlin i IntelliJ IDEA.

Trinn 1) Åpne RubyMine Editor via Windows startmeny.

Cucumber Manus: Multiplisere 2 Numbers

Trinn 2) I RubyMine Editor klikker du på Opprett nytt prosjekt.

Cucumber Manus: Multiplisere 2 Numbers

Trinn 3) Velg prosjektplasseringen og klikk "Opprett".

Cucumber Manus: Multiplisere 2 Numbers

Trinn 4) Opprett en filkatalog i prosjektets rotmappe for funksjonsfilene dine.

Cucumber Manus: Multiplisere 2 Numbers

Trinn 5) Gi katalogen navnet "funksjoner". Cucumber vil skanne denne mappen automatisk.

Cucumber Manus: Multiplisere 2 Numbers

Trinn 6) Opprett og lagre fil i «dinmappe/funksjoner/» med navnet «dittfilnavn.funksjon».

Klikk her. hvis videoen ikke er tilgjengelig

Cucumber Manus: Multiplisere 2 Numbers

Cucumber Manus: Multiplisere 2 Numbers

Trinn 7) For å kjøre scenariet, lagre følgende program i Feature-filen. Merk hvordan Gherkin-nøkkelord som Feature, Scenario, Gitt, Når og Så beskriver testatferden.

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

Trinn 8) Kjør nå din første Feature-fil.

Klikk på «Start ledetekst med Ruby».

Cucumber Manus: Multiplisere 2 Numbers

Resultatet du mottar vises nedenfor.

Cucumber Manus: Multiplisere 2 Numbers

Du vil se en feil fordi du må skrive en trinndefinisjonsfil som kobles til funksjonsfilen.

Trinn 9) Opprett en trinndefinisjonsfil for funksjonsfilen din.

Opprett en ny mappe i RubyMine-editoren med navnet «step_definition».

Cucumber Manus: Multiplisere 2 Numbers

Cucumber Manus: Multiplisere 2 Numbers

Trinn 10) Lagre filen i «dinmappe/funksjoner/trinn_definisjoner» med navnet test_trinn.rb.

Cucumber Manus: Multiplisere 2 Numbers

Cucumber Manus: Multiplisere 2 Numbers

Trinn 11) Skriv følgende kode i Step Definition-filen. Hver blokk tilordnes til et Gherkin-trinn fra Feature-filen.

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

Trinn 12) Kjør funksjonsfilen på nytt.

Cucumber Manus: Multiplisere 2 Numbers

Resultatet vises nedenfor.

Cucumber Manus: Multiplisere 2 Numbers

Cucumber Skript 2: Bekreft utdata når e-post-ID er angitt eller ikke angitt

I dette andre eksemplet skal du bruke Ruby med Watir å kjøre en nettleser og validere to registreringsscenarier på Guru99 demoside. De samme mønstrene gjelder hvis du tar i bruk Cucumber-JVM 7.x med Selenium WebDriver og Java.

I dette eksemplet bruker vi Rubin.

TestscenarioBekreft utdata når e-postadresse IKKE er oppgitt.

Testtrinn:

  1. Åpne nettleser
  2. gå til https://demo.guru99.com/
  3. Do ikke skriv inn e-post-ID
  4. Klikk på Send

TestscenarioBekreft utdata når e-postadresse er angitt.

Testtrinn:

  1. Åpne nettleser
  2. gå til https://demo.guru99.com/
  3. Skriv inn e-post-ID
  4. Klikk på Send

Code i funksjonsfilen:

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 trinndefinisjonsfilen:

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

Kjør koden i ledeteksten, så ser du følgende utdata.

Bekreft utdata når e-post-ID er angitt eller ikke angitt

Spørsmål og svar

En funksjonsfil er en ren tekstfil med filtypen .feature som bruker Gherkin-syntaks for å beskrive én applikasjonsfunksjon. Den grupperer relaterte scenarier skrevet med trinnene Gitt, Når og Så, slik at ikke-tekniske interessenter kan lese og validere atferd sammen med utviklere.

Hvert Gherkin-trinn er kun tekst. Cucumber trenger en trinndefinisjon som tilordner trinnet til kjørbar kode i Ruby, Java, eller et annet språk. Uten det kartetping, løperen rapporterer udefinerte trinn, og scenariet klarer ikke å utføre den tiltenkte logikken.

Cucumber-JVM 7.x er den nåværende stabile linjen og anbefales for nye Java og Kotlin-prosjekter. Cucumber Ruby 9.x er fortsatt det moderne valget for Ruby-team. Begge utgivelsene støtter JUnit 5, parallell utførelse og tagbasert filtrering for CI-pipelines.

AI-assistenter analyserer brukerhistorier, akseptkriterier og historiske defekter for å utarbeide Gherkin-scenarier i gitt-når-så-format. De foreslår grensetilfeller, alternative baner og taggforslag, slik at BDD-teamene dekker mer atferd uten å bruke timer på å skrive hver funksjonsfil for hånd.

Ja. AI-verktøy leser Feature-filer, matcher hvert Gherkin-trinn med eksisterende kode og bygger opp nye Step Definition-metoder i Ruby eller JavaDe genererer standardtekst, parameterregex og påstandsstubber, slik at utviklere bare forbedrer forretningslogikken i stedet for å skrive hver limfunksjon for hånd.

Oppsummer dette innlegget med: