Creează primul tău Cucumber Script (2 exemple)

⚡ Rezumat inteligent

Cucumber Executarea scripturilor vă ajută să transformați scenariile Gherkin în limbaj simplu în teste automate rulabile folosind fișiere Step Definition, permițând echipelor să valideze comportamentul, să partajeze intențiile între părțile interesate și să livreze proiecte fiabile bazate pe BDD. Cucumber or Cucumber-JVM.

  • ???? Elementele de bază ale castraveților murați: Fișierele de caracteristici descriu scenarii în sintaxa Given-When-Then pe care atât testerii, cât și echipele de business o pot citi.
  • 📝 Definiții ale pașilor: Fiecare pas Gherkin este corelat cu un bloc de cod scris în Ruby, Javasau o altă limbă acceptată.
  • ⚙️ Configurare proiect: RubyMine sau orice IDE poate găzdui folderul features, folderul step_definitions și configurația runner-ului.
  • Două exemple: Un scenariu de multiplicare și o GuruScenariul demo de autentificare 99 demonstrează execuția BDD end-to-end.
  • 🧪 Versiuni moderne: Cucumber-JVM 7.x și Cucumber Ruby 9.x rămâne versiunile stabile utilizate în prezent în cadrul pipelinelor CI.

Cucumber Scenariu

În acest tutorial, veți crea Cucumber Scripturi pentru testarea a două scenarii folosind sintaxa Gherkin și fișiere Step Definition. Cucumber este un framework BDD popular care conectează fișierele Feature în limbaj simplu cu cod de test executabil, astfel încât analiștii de business și dezvoltatorii să poată colabora la aceleași specificații.

Cucumber Script 1: Înmulțiți 2 Numbers

În acest prim Cucumber De exemplu, veți scrie un fișier Feature simplu care înmulțește două numere și apoi veți crea un fișier Step Definition corespunzător în Ruby. Același flux de lucru se aplică dacă utilizați Cucumber-JVM 7.x cu Java sau Kotlin în IntelliJ IDEA.

Pas 1) Deschideți editorul RubyMine prin intermediul Windows meniul de pornire.

Cucumber Script: Înmulțire 2 Numbers

Pas 2) În editorul RubyMine, faceți clic pe Creare proiect nou.

Cucumber Script: Înmulțire 2 Numbers

Pas 3) Selectați locația proiectului și faceți clic pe „Creați”.

Cucumber Script: Înmulțire 2 Numbers

Pas 4) Creați un director de fișiere în rădăcina proiectului pentru fișierele dvs. de caracteristici.

Cucumber Script: Înmulțire 2 Numbers

Pas 5) Denumiți directorul ca "Caracteristici". Cucumber va scana automat acest folder.

Cucumber Script: Înmulțire 2 Numbers

Pas 6) Creați și salvați fișierul în „yourfolder/features/” cu numele „yourfilename.feature”.

Clic aici dacă videoclipul nu este accesibil

Cucumber Script: Înmulțire 2 Numbers

Cucumber Script: Înmulțire 2 Numbers

Pas 7) Pentru a executa scenariul, salvați următorul program în fișierul Feature. Observați cum cuvintele cheie Gherkin, cum ar fi Feature, Scenario, Given, When și Then, descriu comportamentul testului.

Cucumber Script: Înmulțire 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

Pas 8) Acum rulați primul fișier Feature.

Faceți clic pe „Porniți promptul de comandă cu Ruby”.

Cucumber Script: Înmulțire 2 Numbers

Rezultatul pe care îl primiți este afișat mai jos.

Cucumber Script: Înmulțire 2 Numbers

Veți vedea o eroare deoarece trebuie să scrieți un fișier de definiție a pașilor care să se asocieze cu fișierul de caracteristici.

Pas 9) Creați un fișier de definiție a pașilor pentru fișierul dvs. de caracteristici.

Creați un folder nou în editorul RubyMine numit „step_definition”.

Cucumber Script: Înmulțire 2 Numbers

Cucumber Script: Înmulțire 2 Numbers

Pas 10) Salvați fișierul în „yourfolder/features/step_definitions” cu numele test_step.rb.

Cucumber Script: Înmulțire 2 Numbers

Cucumber Script: Înmulțire 2 Numbers

Pas 11) Scrieți următorul cod în fișierul Step Definition. Fiecare bloc este asociat unui pas Gherkin din fișierul Feature.

Cucumber Script: Înmulțire 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

Pas 12) Rulați din nou fișierul Feature.

Cucumber Script: Înmulțire 2 Numbers

Rezultatul este prezentat mai jos.

Cucumber Script: Înmulțire 2 Numbers

Cucumber Script 2: Verificați rezultatul când este introdus sau nu este introdus ID-ul de e-mail

În acest al doilea exemplu, veți folosi Ruby cu Watir să controleze un browser și să valideze două scenarii de înregistrare pe Guru99 site demo. Aceleași tipare se aplică dacă adoptați Cucumber-JVM 7.x cu Selenium WebDriver și Java.

În acest exemplu folosim Rubin.

Scenariu de testareVerificați ieșirea când NU este introdus ID-ul de e-mail.

Pașii de testare:

  1. Deschideți browserul
  2. Mergi la https://demo.guru99.com/
  3. Do nu introduceți id-ul de e-mail
  4. Faceți clic pe Trimiteți

Scenariu de testareVerificați ieșirea când este introdus ID-ul de e-mail.

Pașii de testare:

  1. Deschideți browserul
  2. Mergi la https://demo.guru99.com/
  3. Introduceți ID-ul de e-mail
  4. Faceți clic pe Trimiteți

Code în fișierul de caracteristici:

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 în fișierul de definire a pașilor:

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

Rulați codul în promptul de comandă și veți vedea următorul rezultat.

Verificați rezultatul când ID-ul de e-mail este introdus sau nu este introdus

Întrebări frecvente

Un fișier Feature este un fișier text simplu cu extensia .feature care folosește sintaxa Gherkin pentru a descrie o caracteristică a aplicației. Acesta grupează scenarii corelate scrise cu pași de tip Given (Dat), When (Când) și Then (Apoi), astfel încât părțile interesate non-tehnice să poată citi și valida comportamentul alături de dezvoltatori.

Fiecare pas Gherkin este doar text. Cucumber are nevoie de o definiție a pasului care mapează pasul la cod executabil în Ruby, Java, sau o altă limbă. Fără acea hartăping, rulatorul raportează pași nedefiniți, iar scenariul nu reușește să execute logica dorită.

Cucumber-JVM 7.x este linia stabilă actuală și este recomandată pentru noi Java și proiecte Kotlin. Cucumber Ruby 9.x rămâne alegerea modernă pentru echipele Ruby. Ambele versiuni suportă JUnit 5, execuție paralelă și filtrare bazată pe etichete pentru conductele CI.

Asistenții inteligenți artificiali analizează poveștile utilizatorilor, criteriile de acceptare și defectele istorice pentru a redacta scenarii Gherkin în format „Given-When-Then”. Aceștia sugerează cazuri limită, căi alternative și sugestii de etichete, astfel încât echipele BDD să acopere mai multe comportamente fără a petrece ore întregi scriind de mână fiecare fișier de caracteristici.

Da. Instrumentele de inteligență artificială citesc fișierele Feature, potrivesc fiecare pas Gherkin cu codul existent și creează noi metode Step Definition în Ruby sau JavaAcestea generează forme standard, expresii regulate ale parametrilor și fragmente de afirmații, astfel încât dezvoltatorii doar rafinează logica de business în loc să scrie manual fiecare funcție de tip „glue”.

Rezumați această postare cu: