Vytvořte si svůj první Cucumber Skript (2 příklady)

⚡ Chytré shrnutí

Cucumber Spouštění skriptů vám pomůže převést scénáře Gherkin v jednoduchém jazyce na spustitelné automatizované testy pomocí souborů Step Definition, což umožňuje týmům ověřovat chování, sdílet záměry mezi zúčastněnými stranami a odesílat spolehlivé projekty řízené BDD. Cucumber or Cucumber-JVM.

  • ???? Základy okurky: Soubory funkcí popisují scénáře v syntaxi Given-When-Then, kterou mohou číst jak testeři, tak obchodní týmy.
  • ???? Definice kroků: Každý Gherkinův krok se mapuje na blok kódu napsaný v Ruby, Javanebo jiný podporovaný jazyk.
  • ⚙️ Nastavení projektu: RubyMine nebo jakékoli jiné IDE může hostovat složky features, step_definitions a konfiguraci běžce.
  • (Tj. Dva příklady: Scénář násobení a Guru99 demo scénářů přihlášení demonstruje end-to-end provedení BDD.
  • 🧪 Moderní verze: Cucumber-JVM 7.x a Cucumber Ruby 9.x zůstává aktuální stabilní verzí používanou napříč CI pipelines.

Cucumber Scénář

V tomto tutoriálu vytvoříte Cucumber Skripty pro testování dvou scénářů s využitím syntaxe Gherkin a souborů s definicemi kroků. Cucumber je populární BDD framework, který propojuje soubory Feature v jednoduchém jazyce se spustitelným testovacím kódem, takže obchodní analytici a vývojáři mohou spolupracovat na stejných specifikacích.

Cucumber Skript 1: Násobit 2 Numbers

V tomto prvním Cucumber Například napíšete jednoduchý soubor Feature, který vynásobí dvě čísla, a poté v Ruby vytvoříte odpovídající soubor Step Definition. Stejný pracovní postup platí, pokud použijete Cucumber-JVM 7.x s Java nebo Kotlin v IntelliJ IDEA.

Krok 1) Otevřete editor RubyMine pomocí Windows nabídka Start.

Cucumber Scénář: Násobit 2 Numbers

Krok 2) V editoru RubyMine klikněte na Vytvořit nový projekt.

Cucumber Scénář: Násobit 2 Numbers

Krok 3) Vyberte umístění projektu a klikněte na „Vytvořit“.

Cucumber Scénář: Násobit 2 Numbers

Krok 4) Vytvořte adresář souborů v kořenovém adresáři projektu pro soubory Feature.

Cucumber Scénář: Násobit 2 Numbers

Krok 5) Pojmenujte adresář jako "funkce". Cucumber tuto složku automaticky prohledá.

Cucumber Scénář: Násobit 2 Numbers

Krok 6) Vytvořte a uložte soubor do složky „vasesložka/features/“ s názvem „nazevvasesouboru.feature“.

klikněte zde pokud video není přístupné

Cucumber Scénář: Násobit 2 Numbers

Cucumber Scénář: Násobit 2 Numbers

Krok 7) Pro spuštění scénáře uložte následující program do souboru Feature. Všimněte si, jak klíčová slova Gherkin, jako například Feature, Scenario, Given, When a Then, popisují chování testu.

Cucumber Scénář: Násobit 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

Krok 8) Nyní spusťte svůj první soubor Feature.

Klikněte na „Spustit příkazový řádek s Ruby“.

Cucumber Scénář: Násobit 2 Numbers

Výstup, který obdržíte, je zobrazen níže.

Cucumber Scénář: Násobit 2 Numbers

Zobrazí se chyba, protože musíte napsat soubor definice kroku, který se spáruje se souborem prvku.

Krok 9) Vytvořte soubor s definicí kroku pro váš soubor s prvky.

V editoru RubyMine vytvořte novou složku s názvem „step_definition“.

Cucumber Scénář: Násobit 2 Numbers

Cucumber Scénář: Násobit 2 Numbers

Krok 10) Uložte soubor do složky „vase_složka/features/definitions_kroku“ s názvem test_krok.rb.

Cucumber Scénář: Násobit 2 Numbers

Cucumber Scénář: Násobit 2 Numbers

Krok 11) Do souboru s definicí kroku napište následující kód. Každý blok se mapuje na krok Gherkin ze souboru s prvkem.

Cucumber Scénář: Násobit 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

Krok 12) Spusťte soubor Feature znovu.

Cucumber Scénář: Násobit 2 Numbers

Výsledek je uveden níže.

Cucumber Scénář: Násobit 2 Numbers

Cucumber Skript 2: Ověřte výstup, když je zadáno nebo nezadáno ID e-mailu

V tomto druhém příkladu použijete Ruby s Watir řídit prohlížeč a ověřit dva registrační scénáře na Guru99 demo stránek. Stejné vzorce platí, pokud přijmete Cucumber-JVM 7.x s Selenium WebDriver a Java.

V tomto příkladu používáme Rubín.

Scénář testuOvěření výstupu, pokud NENÍ zadána e-mailová adresa.

Testovací kroky:

  1. Otevřete prohlížeč
  2. Přejít na https://demo.guru99.com/
  3. Do ne zadejte ID e-mailu
  4. Klikněte na tlačítko Odeslat

Scénář testuOvěřit výstup po zadání e-mailové adresy.

Testovací kroky:

  1. Otevřete prohlížeč
  2. Přejít na https://demo.guru99.com/
  3. Zadejte ID e-mailu
  4. Klikněte na tlačítko Odeslat

Code v souboru s funkcemi:

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 v souboru s definicí kroku:

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

Spusťte kód v příkazovém řádku a uvidíte následující výstup.

Ověřte výstup, když je zadáno nebo nezadáno ID e-mailu

Nejčastější dotazy

Soubor Feature je prostý textový soubor s příponou .feature, který používá syntaxi Gherkin k popisu jedné funkce aplikace. Seskupuje související scénáře napsané pomocí kroků Given, When a Then, aby si netechničtí aktéři mohli chování přečíst a ověřovat společně s vývojáři.

Každý krok Gherkina je pouze textový. Cucumber potřebuje definici kroku, která mapuje krok na spustitelný kód v Ruby, Javanebo jiný jazyk. Bez této mapyping, běžec hlásí nedefinované kroky a scénář neprovede zamýšlenou logiku.

CucumberJVM 7.x je aktuální stabilní verze a je doporučena pro nové Java a projekty Kotlin. Cucumber Ruby 9.x zůstává moderní volbou pro týmy pracující s Ruby. Obě verze podporují JUnit 5, paralelní provádění a filtrování na základě tagů pro CI kanály.

Asistenti umělé inteligence analyzují uživatelské příběhy, kritéria přijetí a historické vady, aby navrhli scénáře Gherkin ve formátu „dané-kdy-pak“. Navrhují hraniční případy, alternativní cesty a návrhy tagů, aby týmy BDD pokryly více chování, aniž by trávily hodiny ručním psaním každého souboru s funkcemi.

Ano. Nástroje umělé inteligence čtou soubory funkcí, porovnávají každý Gherkinův krok s existujícím kódem a vytvářejí nové metody definice kroků v Ruby nebo... JavaGenerují boilerplate, regulární výrazy parametrů a assertion stuby, takže vývojáři pouze vylepšují obchodní logiku, místo aby každou spojovací funkci psali ručně.

Shrňte tento příspěvek takto: