İlkinizi Yaratın Cucumber Senaryo (2 Örnek)

⚡ Akıllı Özet

Cucumber Komut dosyası yürütme, düz dildeki Gherkin senaryolarını Adım Tanımı dosyaları kullanarak çalıştırılabilir otomatik testlere dönüştürmenize yardımcı olur; bu da ekiplerin davranışı doğrulamasına, paydaşlar arasında amacı paylaşmasına ve güvenilir BDD odaklı projeleri yayınlamasına olanak tanır. Cucumber or Cucumber-JVM.

  • 🥒 Gherkin Temel Bilgileri: Özellik dosyaları, hem test uzmanlarının hem de iş ekiplerinin okuyabileceği şekilde, Verilen-Ne Zaman-O Zaman sözdizimiyle senaryoları tanımlar.
  • 📝 Adım Tanımları: Gherkin'in her adımı, Ruby dilinde yazılmış bir kod bloğuna karşılık gelir. Javaveya desteklenen başka bir dil.
  • ⚙️ Proje Kurulumu: RubyMine veya herhangi bir IDE, features klasörünü, step_definitions klasörünü ve runner yapılandırmasını barındırabilir.
  • İki örnek: Bir çarpma senaryosu ve bir Guru99 numaralı demo giriş senaryosu, uçtan uca BDD uygulamasını göstermektedir.
  • 🧪 Modern Versiyonlar: Cucumber-JVM 7.x ve Cucumber CI işlem hatlarında kullanılan mevcut kararlı sürümler Ruby 9.x olmaya devam etmektedir.

Cucumber Senaryo

Bu eğitimde şunları oluşturacaksınız: Cucumber Gherkin sözdizimi ve Adım Tanımı dosyalarını kullanarak iki senaryoyu test etmek için kullanılan komut dosyaları. Cucumber BDD, düz dildeki Feature dosyalarını çalıştırılabilir test kodlarıyla birleştiren ve böylece iş analistlerinin ve geliştiricilerin aynı özellikler üzerinde işbirliği yapmasını sağlayan popüler bir BDD çerçevesidir.

Cucumber Senaryo 1: Çarpma 2 Numbers

Önce bu Cucumber Örneğin, iki sayıyı çarpan basit bir Feature dosyası yazacak ve ardından Ruby'de buna uygun bir Step Definition dosyası oluşturacaksınız. Aynı iş akışı, aşağıdaki yöntemleri kullandığınızda da geçerlidir: Cucumber-JVM 7.x ile Java veya Kotlin'de IntelliJ IDEA.

) 1 Adım RubyMine Editörünü aşağıdaki bağlantı üzerinden açın. Windows başlangıç ​​menüsü.

Cucumber Senaryo: 2'yi Çarp Numbers

) 2 Adım RubyMine Editöründe, Yeni Proje Oluştur'a tıklayın.

Cucumber Senaryo: 2'yi Çarp Numbers

) 3 Adım Proje konumunu seçin ve “Oluştur”a tıklayın.

Cucumber Senaryo: 2'yi Çarp Numbers

) 4 Adım Proje kök dizini içinde Feature dosyalarınız için bir dosya dizini oluşturun.

Cucumber Senaryo: 2'yi Çarp Numbers

) 5 Adım Dizin adını şu şekilde belirleyin: "Özellikler". Cucumber Bu klasör otomatik olarak taranacaktır.

Cucumber Senaryo: 2'yi Çarp Numbers

) 6 Adım “yourfolder/features/” klasörüne “yourfilename.feature” adıyla bir dosya oluşturun ve kaydedin.

Tıkla okuyun videoya erişilemiyorsa

Cucumber Senaryo: 2'yi Çarp Numbers

Cucumber Senaryo: 2'yi Çarp Numbers

) 7 Adım Senaryoyu çalıştırmak için aşağıdaki programı Feature dosyasına kaydedin. Feature, Scenario, Given, When ve Then gibi Gherkin anahtar kelimelerinin test davranışını nasıl tanımladığına dikkat edin.

Cucumber Senaryo: 2'yi Çarp Numbers

Kod:

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 Adım Şimdi ilk Feature dosyanızı çalıştırın.

“Ruby ile Komut İstemi Başlat” seçeneğine tıklayın.

Cucumber Senaryo: 2'yi Çarp Numbers

Aşağıda alacağınız çıktı gösterilmektedir.

Cucumber Senaryo: 2'yi Çarp Numbers

Bir hata göreceksiniz çünkü Özellik dosyasıyla eşleşen bir Adım Tanımı dosyası yazmanız gerekiyor.

) 9 Adım Özellik dosyanız için bir Adım Tanımı dosyası oluşturun.

RubyMine düzenleyicisinde "step_definition" adında yeni bir klasör oluşturun.

Cucumber Senaryo: 2'yi Çarp Numbers

Cucumber Senaryo: 2'yi Çarp Numbers

) 10 Adım Dosyayı “yourfolder/features/step_definitions” klasörüne test_step.rb adıyla kaydedin.

Cucumber Senaryo: 2'yi Çarp Numbers

Cucumber Senaryo: 2'yi Çarp Numbers

) 11 Adım Aşağıdaki kodu Adım Tanımı dosyasına yazın. Her blok, Özellik dosyasındaki bir Gherkin adımına karşılık gelir.

Cucumber Senaryo: 2'yi Çarp 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 Adım Özellik dosyasını tekrar çalıştırın.

Cucumber Senaryo: 2'yi Çarp Numbers

Sonuç aşağıda gösterilmiştir.

Cucumber Senaryo: 2'yi Çarp Numbers

Cucumber Komut Dosyası 2: E-posta kimliği girildiğinde veya girilmediğinde çıktıyı doğrula

Bu ikinci örnekte, Ruby'yi kullanacaksınız. Watir Bir tarayıcıyı çalıştırmak ve iki kayıt senaryosunu doğrulamak Guru99 demo sitesi. Aynı kalıplar, siz de benimserseniz geçerlidir. Cucumber-JVM 7.x ile Selenium WebDriver ve Java.

Bu örnekte kullanıyoruz Yakut.

Test SenaryosuE-posta adresi girilmediğinde çıktıyı doğrulayın.

Test Adımları:

  1. Tarayıcı aç
  2. git https://demo.guru99.com/
  3. Do değil E-posta kimliğini girin
  4. Gönder'e tıklayın

Test SenaryosuE-posta adresi girildiğinde çıktıyı doğrulayın.

Test Adımları:

  1. Tarayıcı aç
  2. git https://demo.guru99.com/
  3. E-posta Kimliğini Girin
  4. Gönder'e tıklayın

Code Özellik dosyasında:

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 Adım Tanımı dosyasında:

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

Kodu komut isteminde çalıştırdığınızda aşağıdaki çıktıyı göreceksiniz.

E-posta kimliği girildiğinde veya girilmediğinde çıktıyı doğrula

SSS

Bir Özellik dosyası, Gherkin sözdizimini kullanarak bir uygulama özelliğini tanımlayan, .feature uzantılı düz metin bir dosyadır. Teknik olmayan paydaşların geliştiricilerle birlikte davranışı okuyup doğrulayabilmeleri için, Given, When ve Then adımlarıyla yazılmış ilgili Senaryoları gruplandırır.

Gherkin'in her adımı yalnızca metinden oluşmaktadır. Cucumber Bir adımın Ruby'de çalıştırılabilir koda eşlenmesini sağlayan bir Adım Tanımı'na ihtiyaç duyar. JavaYa da başka bir dil. O harita olmadan.pingÇalıştırıcı tanımlanmamış adımlar bildiriyor ve Senaryo amaçlanan mantığı yürütemiyor.

Cucumber-JVM 7.x şu anki kararlı sürümdür ve yeni kullanıcılar için önerilir. Java ve Kotlin projeleri. Cucumber Ruby 9.x, Ruby ekipleri için modern bir tercih olmaya devam ediyor. Her iki sürüm de destekliyor. JUnit 5. CI işlem hatları için paralel yürütme ve etiket tabanlı filtreleme.

Yapay zekâ asistanları, kullanıcı hikayelerini, kabul kriterlerini ve geçmişteki hataları analiz ederek, Verilen-Ne Zaman-O Zaman formatında Gherkin Senaryoları taslağı oluşturur. Sınır durumları, alternatif yollar ve etiket önerileri sunarak, BDD ekiplerinin her bir Özellik dosyasını saatlerce elle yazmak zorunda kalmadan daha fazla davranışı kapsamasını sağlar.

Evet. Yapay zeka araçları Feature dosyalarını okur, her Gherkin adımını mevcut kodla eşleştirir ve Ruby'de yeni Adım Tanımı yöntemleri oluşturur. JavaBu araçlar, geliştiricilerin her bir bağlantı fonksiyonunu elle yazmak yerine yalnızca iş mantığını iyileştirmelerine olanak tanıyarak, şablon kodları, parametre regex'leri ve doğrulama taslakları oluştururlar.

Bu yazıyı şu şekilde özetleyin: