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

⚡ Умное резюме

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

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

Cucumber Сценарий

В этом уроке вы создадите Cucumber Скрипты для тестирования двух сценариев с использованием синтаксиса Gherkin и файлов определения шагов. Cucumber Это популярный BDD-фреймворк, который связывает файлы функций, написанные на простом языке, с исполняемым тестовым кодом, позволяя бизнес-аналитикам и разработчикам совместно работать над одними и теми же спецификациями.

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

В этом первом Cucumber Например, вы напишете простой файл Feature, который умножает два числа, а затем создадите соответствующий файл Step Definition на Ruby. Тот же рабочий процесс применим и при использовании... Cucumber-JVM 7.x с Java или Kotlin в IntelliJ IDEA.

Шаг 1) Откройте редактор RubyMine через Windows стартовое меню.

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

Шаг 2) В редакторе RubyMine нажмите «Создать новый проект».

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

Шаг 3) Выберите местоположение проекта и нажмите «Создать».

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

Шаг 4) Создайте каталог файлов внутри корневой директории проекта для ваших файлов функций.

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) Теперь запустите свой первый файл объектов.

Нажмите на кнопку «Запустить командную строку с 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 из файла 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 WebDriver и Java.

В этом примере мы используем Ruby.

Сценарий тестированияПроверка результата при отсутствии адреса электронной почты.

Этапы тестирования:

  1. Открыть браузер
  2. Перейти к https://demo.guru99.com/
  3. Do не введите идентификатор электронной почты
  4. Нажмите «Отправить»

Сценарий тестированияПроверьте результат после ввода адреса электронной почты.

Этапы тестирования:

  1. Открыть браузер
  2. Перейти к https://demo.guru99.com/
  3. Введите идентификатор электронной почты
  4. Нажмите «Отправить»

Code в файле Feature:

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

Запустите код в командной строке, и вы увидите следующий результат.

Проверьте вывод, когда идентификатор электронной почты введен или не введен

Часто задаваемые вопросы (FAQ)

Файл Feature — это текстовый файл с расширением .feature, в котором используется синтаксис Gherkin для описания одной функции приложения. Он группирует связанные сценарии, написанные с использованием шагов Given, When и Then, чтобы нетехнические заинтересованные стороны могли читать и проверять поведение приложения вместе с разработчиками.

Каждый шаг алгоритма Gherkin представлен только в текстовом формате. Cucumber Требуется определение шага, которое сопоставляет шаг с исполняемым кодом в Ruby. Javaили на другом языке. Без этой карты.pingВ результате выполнения сценария сообщается о неопределенных шагах, и запланированная логика не выполняется.

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

Искусственный интеллект-помощники анализируют пользовательские истории, критерии приемки и исторические дефекты, чтобы создавать сценарии Gherkin в формате Given-When-Then. Они предлагают граничные случаи, альтернативные пути и варианты тегов, позволяя командам, работающим по методологии BDD, охватить больше вариантов поведения, не тратя часы на ручное написание каждого файла Feature.

Да. Инструменты ИИ считывают файлы функций, сопоставляют каждый шаг Gherkin с существующим кодом и создают новые методы определения шагов на Ruby или JavaОни генерируют шаблонный код, регулярные выражения для параметров и заглушки утверждений, так что разработчики могут лишь уточнять бизнес-логику, вместо того чтобы писать каждую связующую функцию вручную.

Подведем итог этой публикации следующим образом: