Създайте своя първи Cucumber Скрипт (2 примера)

⚡ Умно обобщение

Cucumber Изпълнението на скриптове ви помага да превърнете сценариите на Gherkin, написани на разбираем език, в изпълними автоматизирани тестове, използвайки файлове с дефиниции на стъпки, което позволява на екипите да валидират поведението, да споделят намеренията си между заинтересованите страни и да доставят надеждни проекти, базирани на BDD. Cucumber or Cucumber-JVM.

  • ???? Основи на корнишоните: Файловете с функции описват сценарии в синтаксис „Дадено-Когато-Тогава“, който както тестерите, така и бизнес екипите могат да прочетат.
  • 📝 Дефиниции на стъпки: Всяка стъпка на Gherkin се съпоставя с блок от код, написан на Ruby, Javaили друг поддържан език.
  • Настройка на проекта: RubyMine или която и да е друга IDE може да хоства папките features, step_definitions и конфигурацията на runner.
  • Два примера: Сценарий за умножение и Guru99 демонстрационни сценария за вход демонстрират цялостно изпълнение на BDD.
  • 🧪 Модерни версии: Cucumber-JVM 7.x и Cucumber Ruby 9.x остават текущите стабилни версии, използвани в CI конвейерите.

Cucumber Сценарий

В този урок ще създадете Cucumber Скриптове за тестване на два сценария, използващи синтаксис на Gherkin и файлове за дефиниране на стъпки. Cucumber е популярна BDD рамка, която свързва Feature файлове на обикновен език с изпълним тестов код, така че бизнес анализаторите и разработчиците да могат да си сътрудничат по едни и същи спецификации.

Cucumber Сценарий 1: Умножение 2 Numbers

В това първо Cucumber Например, ще напишете прост файл с функции, който умножава две числа, и след това ще създадете съответстващ файл с дефиниции на стъпки в Ruby. Същият работен процес се прилага, ако използвате Cucumber-JVM 7.x с Java или Котлин в IntelliJ IDEA.

Стъпка 1) Отворете редактора на RubyMine чрез Windows старт меню.

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 2) В редактора на RubyMine щракнете върху „Създаване на нов проект“.

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 3) Изберете местоположението на проекта и щракнете върху „Създаване“.

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 4) Създайте файлова директория в корена на проекта за вашите Feature файлове.

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 5) Наименувайте директорията като „характеристики“. Cucumber ще сканира тази папка автоматично.

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 6) Създайте и запазете файл в „yourfolder/features/“ с име „yourfilename.feature“.

Кликнете тук ако видеото не е достъпно

Cucumber Скрипт: Умножение 2 Numbers

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 7) За да изпълните сценария, запазете следната програма във файла Feature. Обърнете внимание как ключовите думи на Gherkin, като Feature, Scenario, Given, When и Then, описват поведението на теста.

Cucumber Скрипт: Умножение 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

Стъпка 8) Сега стартирайте първия си Feature файл.

Кликнете върху „Стартиране на командния ред с Ruby“.

Cucumber Скрипт: Умножение 2 Numbers

Полученият резултат е показан по-долу.

Cucumber Скрипт: Умножение 2 Numbers

Ще видите грешка, защото трябва да напишете файл за дефиниране на стъпка, който се сдвоява с файла с функции.

Стъпка 9) Създайте файл с дефиниции на стъпки за вашия файл с функции.

Създайте нова папка в редактора на RubyMine с име „step_definition“.

Cucumber Скрипт: Умножение 2 Numbers

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 10) Запазете файла в „yourfolder/features/step_definitions“ с име test_step.rb.

Cucumber Скрипт: Умножение 2 Numbers

Cucumber Скрипт: Умножение 2 Numbers

Стъпка 11) Напишете следния код във файла Step Definition. Всеки блок се съпоставя със стъпка Gherkin от файла Feature.

Cucumber Скрипт: Умножение 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

Стъпка 12) Стартирайте файла Feature отново.

Cucumber Скрипт: Умножение 2 Numbers

Резултатът е показан по-долу.

Cucumber Скрипт: Умножение 2 Numbers

Cucumber Скрипт 2: Проверете изхода, когато имейл адресът е въведен или не е въведен

Във втория пример ще използвате Ruby с Watir да управлява браузър и да валидира два сценария за регистрация на Guru99 демонстрационен сайт. Същите модели важат и ако приемете Cucumber-JVM 7.x с Selenium Уеб драйвер и Java.

В този пример използваме Руби.

Сценарий на тестаПроверка на изхода, когато имейл адресът НЕ е въведен.

Стъпки на теста:

  1. Отворете браузъра
  2. Отидете в https://demo.guru99.com/
  3. Do не въведете имейл адрес
  4. Кликнете върху Изпращане

Сценарий на тестаПроверка на изхода при въвеждане на имейл адрес.

Стъпки на теста:

  1. Отворете браузъра
  2. Отидете в https://demo.guru99.com/
  3. Въведете имейл адрес
  4. Кликнете върху Изпращане

Code във файла с функции:

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 във файла с дефиниции на стъпки:

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

Изпълнете кода в командния ред и ще видите следния изход.

Проверете изхода, когато имейл адресът е въведен или не е въведен

Въпроси и Отговори

Файлът с функции е обикновен текстов файл с разширение .feature, който използва синтаксис на Gherkin, за да опише една функция на приложението. Той групира свързани сценарии, написани със стъпки „Дадено“, „Когато“ и „Тогава“, така че нетехнически заинтересовани страни да могат да четат и валидират поведението заедно с разработчиците.

Всяка стъпка на Gherkin е само текст. Cucumber се нуждае от дефиниция на стъпка, която съпоставя стъпката с изпълним код в Ruby, Javaили друг език. Без тази картаping, бегачът докладва неопределени стъпки и сценарият не успява да изпълни предвидената логика.

Cucumber-JVM 7.x е текущата стабилна линия и се препоръчва за нови Java и проекти на Kotlin. Cucumber Ruby 9.x остава модерният избор за екипите, работещи с Ruby. И двете издания поддържат JUnit 5, паралелно изпълнение и филтриране на базата на тагове за CI конвейери.

Асистентите с изкуствен интелект анализират потребителски истории, критерии за приемане и исторически дефекти, за да изготвят сценарии на Gherkin във формат „Дадено-Когато-Тогава“. Те предлагат гранични случаи, алтернативни пътища и предложения за тагове, така че BDD екипите да обхванат повече поведение, без да губят часове в писане на ръка на всеки Feature файл.

Да. Инструментите с изкуствен интелект четат файлове с функции, съпоставят всяка стъпка на Gherkin със съществуващ код и създават нови методи за дефиниране на стъпки в Ruby или... JavaТе генерират шаблонни шаблони, регулярни изрази с параметри и assertion stubs, така че разработчиците само усъвършенстват бизнес логиката, вместо да пишат всяка свързваща функция на ръка.

Обобщете тази публикация с: