Crea il tuo primo Cucumber Script (2 esempi)

โšก Riepilogo intelligente

Cucumber L'esecuzione degli script ti aiuta a trasformare scenari Gherkin in linguaggio naturale in test automatizzati eseguibili utilizzando file di definizione dei passaggi, consentendo ai team di convalidare il comportamento, condividere l'intento tra le parti interessate e rilasciare progetti affidabili basati su BDD. Cucumber or Cucumber-JVM.

  • ???? Nozioni di base sui cetriolini sottaceto: I file delle funzionalitร  descrivono gli scenari utilizzando la sintassi Given-When-Then, comprensibile sia ai tester che ai team aziendali.
  • ๐Ÿ“ Definizione dei passaggi: Ogni passaggio di Gherkin corrisponde a un blocco di codice scritto in Ruby, Java, o un'altra lingua supportata.
  • โš™๏ธ Configurazione del progetto: RubyMine o qualsiasi altro IDE puรฒ ospitare la cartella features, la cartella step_definitions e la configurazione del runner.
  • โœ… Due esempi: Uno scenario di moltiplicazione e un Guru99 scenari di accesso dimostrativi illustrano l'esecuzione end-to-end del BDD.
  • ๐Ÿงช Versioni moderne: Cucumber-JVM 7.x e Cucumber Ruby 9.x rimane la versione stabile attualmente utilizzata nelle pipeline CI.

Cucumber Copione

In questo tutorial creerai Cucumber Script per testare due scenari utilizzando la sintassi Gherkin e i file di definizione dei passaggi. Cucumber รจ un framework BDD molto diffuso che collega file Feature in linguaggio naturale con codice di test eseguibile, consentendo cosรฌ ad analisti aziendali e sviluppatori di collaborare sulle stesse specifiche.

Cucumber Script 1: Moltiplica 2 Numbers

In questo primo Cucumber Ad esempio, scriverai un semplice file Feature che moltiplica due numeri e poi creerai un file Step Definition corrispondente in Ruby. Lo stesso flusso di lavoro si applica se usi Cucumber-JVM 7.x con Java o Kotlin in IntelliJ IDEA.

Passo 1) Apri RubyMine Editor tramite Windows menu iniziale.

Cucumber Copione:Moltiplica 2 Numbers

Passo 2) Nell'editor di RubyMine, fai clic su Crea nuovo progetto.

Cucumber Copione:Moltiplica 2 Numbers

Passo 3) Seleziona la posizione del progetto e fai clic su "Crea".

Cucumber Copione:Moltiplica 2 Numbers

Passo 4) Crea una directory all'interno della directory principale del progetto per i file delle funzionalitร .

Cucumber Copione:Moltiplica 2 Numbers

Passo 5) Denominare la directory come "caratteristiche". Cucumber questa cartella verrร  analizzata automaticamente.

Cucumber Copione:Moltiplica 2 Numbers

Passo 6) Crea e salva il file nella cartella "yourfolder/features/" con il nome "yourfilename.feature".

Clicchi Qui. se il video non รจ accessibile

Cucumber Copione:Moltiplica 2 Numbers

Cucumber Copione:Moltiplica 2 Numbers

Passo 7) Per eseguire lo scenario, salva il seguente programma all'interno del file Feature. Nota come le parole chiave di Gherkin, quali Feature, Scenario, Given, When e Then, descrivono il comportamento del test.

Cucumber Copione:Moltiplica 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

Passo 8) Ora esegui il tuo primo file Feature.

Fai clic su "Avvia il prompt dei comandi con Ruby".

Cucumber Copione:Moltiplica 2 Numbers

L'output che si ottiene รจ mostrato qui sotto.

Cucumber Copione:Moltiplica 2 Numbers

Si verificherร  un errore perchรฉ รจ necessario scrivere un file di definizione dei passaggi che corrisponda al file delle funzionalitร .

Passo 9) Crea un file di definizione dei passaggi per il tuo file Feature.

Crea una nuova cartella nell'editor RubyMine chiamata "step_definition".

Cucumber Copione:Moltiplica 2 Numbers

Cucumber Copione:Moltiplica 2 Numbers

Passo 10) Salva il file nella cartella โ€œyourfolder/features/step_definitionsโ€ con il nome test_step.rb.

Cucumber Copione:Moltiplica 2 Numbers

Cucumber Copione:Moltiplica 2 Numbers

Passo 11) Inserisci il seguente codice nel file di definizione dello step. Ogni blocco corrisponde a uno step di Gherkin presente nel file delle funzionalitร .

Cucumber Copione:Moltiplica 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

Passo 12) Eseguire nuovamente il file Feature.

Cucumber Copione:Moltiplica 2 Numbers

Il risultato รจ mostrato di seguito.

Cucumber Copione:Moltiplica 2 Numbers

Cucumber Script 2: verifica l'output quando l'ID e-mail viene inserito o meno

In questo secondo esempio, userai Ruby con Watir per guidare un browser e convalidare due scenari di registrazione su Guru99 sito demo. Gli stessi modelli si applicano se adotti Cucumber-JVM 7.x con Selenium WebDriver e Java.

In questo esempio usiamo Ruby.

Scenario di prova: Verifica l'output quando l'indirizzo e-mail NON viene inserito.

Passaggi del test:

  1. Apri il browser
  2. Vai https://demo.guru99.com/
  3. Do non รจ un Inserisci l'ID e-mail
  4. Fai clic su Invia

Scenario di prova: Verifica l'output quando viene inserito l'indirizzo e-mail.

Passaggi del test:

  1. Apri il browser
  2. Vai https://demo.guru99.com/
  3. Inserisci l'ID e-mail
  4. Fai clic su Invia

Code nel file delle funzionalitร :

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 nel file di definizione dei passaggi:

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

Esegui il codice nel prompt dei comandi e vedrai il seguente output.

Verifica l'output quando l'ID e-mail รจ inserito o non inserito

DOMANDE FREQUENTI

Un file Feature รจ un file di testo semplice con estensione .feature che utilizza la sintassi Gherkin per descrivere una funzionalitร  di un'applicazione. Raggruppa scenari correlati scritti con passaggi Given, When e Then in modo che le parti interessate non tecniche possano leggere e convalidare il comportamento insieme agli sviluppatori.

Ogni passaggio di Gherkin รจ costituito esclusivamente da testo. Cucumber necessita di una definizione di passaggio che mappi il passaggio al codice eseguibile in Ruby, Java, o un'altra lingua. Senza quella mappaping, il runner segnala passaggi non definiti e lo scenario non riesce a eseguire la logica prevista.

Cucumber-JVM 7.x รจ la linea stabile corrente ed รจ consigliata per i nuovi Java e progetti Kotlin. Cucumber Ruby 9.x rimane la scelta moderna per i team Ruby. Entrambe le release supportano JUnit 5, esecuzione parallela e filtraggio basato su tag per pipeline CI.

Gli assistenti basati sull'IA analizzano le user story, i criteri di accettazione e i difetti storici per redigere scenari Gherkin nel formato Given-When-Then. Suggeriscono casi limite, percorsi alternativi e tag, in modo che i team BDD possano coprire un maggior numero di comportamenti senza dover dedicare ore alla scrittura manuale di ogni singolo file di funzionalitร .

Sรฌ. Gli strumenti di IA leggono i file Feature, abbinano ogni passaggio Gherkin al codice esistente e generano nuovi metodi di definizione dei passaggi in Ruby o JavaGenerano codice standard, espressioni regolari per i parametri e stub per le asserzioni, in modo che gli sviluppatori possano solo perfezionare la logica di business anzichรฉ scrivere manualmente ogni singola funzione di collegamento.

Riassumi questo post con: