Створіть свій перший Cucumber Сценарій (2 приклади)

⚡ Розумний підсумок

Cucumber Виконання скриптів допомагає перетворити сценарії Gherkin на звичайну мову на автоматизовані тести, що працюють за допомогою файлів визначення кроків, що дозволяє командам перевіряти поведінку, ділитися намірами між зацікавленими сторонами та запускати надійні проекти на основі BDD. Cucumber or Cucumber-JVM.

  • 🥒 Основи корнішонів: Файли функцій описують сценарії в синтаксисі «Дано-Коли-Потім», який можуть прочитати як тестувальники, так і бізнес-команди.
  • ???? Визначення кроків: Кожен крок Gherkin відповідає блоку коду, написаному на Ruby, Javaабо іншою підтримуваною мовою.
  • Налаштування проекту: RubyMine або будь-яке IDE може розміщувати папки features, step_definitions та конфігурацію бігуна.
  • Два приклади: Сценарій множення та Guru99 демонстраційних сценаріїв входу демонструють виконання BDD від початку до кінця.
  • 🧪 Сучасні версії: Cucumber-JVM 7.x та Cucumber Ruby 9.x залишається поточною стабільною версією, що використовується в конвеєрах неперервної інтеграції.

Cucumber Script

У цьому посібнику ви створите Cucumber Скрипти для тестування двох сценаріїв з використанням синтаксису Gherkin та файлів визначення кроків. Cucumber — це популярний BDD-фреймворк, який поєднує файли Feature написані простою мовою з виконуваним тестовим кодом, щоб бізнес-аналітики та розробники могли співпрацювати над одними й тими ж специфікаціями.

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

У цьому першому Cucumber Наприклад, ви напишете простий файл Feature, який множить два числа, а потім створите відповідний файл Step Definition у 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) Запишіть наступний код у файл визначення кроку. Кожен блок відповідає кроку Gherkin з файлу функцій.

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 File) — це звичайний текстовий файл із розширенням .feature, який використовує синтаксис Gherkin для опису однієї функції програми. Він групує пов'язані сценарії, написані з кроками «Дано», «Коли» та «Потім», щоб нетехнічні спеціалісти могли читати та перевіряти поведінку разом із розробниками.

Кожен крок Gherkin є лише текстовим. Cucumber потрібне визначення кроку, яке відображає крок у виконуваному коді в Ruby, Java, або іншою мовою. Без цієї картиping, бігун повідомляє про невизначені кроки, а сценарій не виконує заплановану логіку.

Cucumber-JVM 7.x є поточною стабільною версією та рекомендована для нових Java та проекти Kotlin. Cucumber Ruby 9.x залишається сучасним вибором для команд, що працюють з Ruby. Обидва релізи підтримують JUnit 5, паралельне виконання та фільтрація на основі тегів для конвеєрів CI.

Помічники ШІ аналізують історії користувачів, критерії прийнятності та історичні дефекти, щоб скласти сценарії Геркіна у форматі «Дано-Коли-Тоді». Вони пропонують граничні випадки, альтернативні шляхи та пропозиції тегів, щоб команди BDD охоплювали більше моделей поведінки, не витрачаючи години на написання кожного файлу Feature від руки.

Так. Інструменти штучного інтелекту зчитують файли функцій, зіставляють кожен крок Gherkin з існуючим кодом та створюють нові методи визначення кроків у Ruby або... JavaВони генерують шаблонні шаблони, регулярні вирази параметрів та заглушки тверджень, тому розробники лише вдосконалюють бізнес-логіку, а не пишуть кожну функцію-зв'язування вручну.

Підсумуйте цей пост за допомогою: