cucumber gherkin tutorial
Bu Bilgilendirici Öğretici, Salatalık Turşusu Çerçevesinin Avantajlarını ve Açık Örneklerle Kornişon Dilini Kullanarak Otomasyon Komut Dosyalarının Nasıl Yazılacağını Açıklar:
Hıyar, Davranış Odaklı Geliştirme (BDD) çerçevesine dayalı bir araçtır. BDD, basit düz metin gösteriminde bir uygulamanın işlevselliğini anlamak için kullanılan bir metodolojidir.
Davranış Odaklı Geliştirme çerçevesinin temel amacı, İş Analistleri, Kalite Güvencesi, Geliştiriciler vb. Gibi çeşitli proje rollerinin teknik yönlere derinlemesine dalmadan uygulamayı anlamasını sağlamaktır.
Salatalık aracı genellikle bir uygulamanın kabul testlerini yazmak için gerçek zamanlı olarak kullanılır. Salatalık aracı, Java, Ruby, .Net vb. Gibi birçok programlama dili için destek sağlar. Selenium, Capybara vb. Gibi birden fazla araçla entegre edilebilir.
Ne öğreneceksin:
- Kornişon Nedir?
- Salatalık Turşusu Çerçevesinin Avantajları
- Salatalığın Selenyum İle Entegrasyonu
- Sonuç
Kornişon Nedir?
Kornişon, Salatalık aracının kullandığı dildir. Uygulama davranışının basit bir İngilizce temsilidir. Cucumber, dokümantasyon amacıyla özellik dosyaları konseptini kullanır. Özellik dosyalarındaki içerik Gherkin dilinde yazılmıştır.
Aşağıdaki konularda, Salatalık Turşusu çerçevesinin, Salatayı Selenyum ile Entegrasyonunun, Bir özellik dosyası ve buna karşılık gelen adım tanımlama dosyasının ve örnek özellik dosyasının avantajları hakkında daha fazlasını göreceğiz.
Salatalık Turşusu Çerçevesi İçin Ortak Terimler
Salatalık Kornişon çerçevesi, bir özellik dosyası yazmak için gerekli olan belirli anahtar kelimeleri kullanır.
Aşağıdaki terimler en yaygın olarak özellik dosyalarında kullanılır:
# 1) Özellik:
Bir özellik dosyası, Test Edilen Uygulama (AUT) ile ilgili üst düzey bir açıklama sağlamalıdır. Özellik dosyasının ilk satırı, açıklamasının ardından 'Özellik' anahtar kelimesiyle başlamalıdır.bir uygulamatest altında. Hıyar tarafından belirlenen standartlara göre, özellik dosyası aşağıdaki üç öğeyi ilk satır olarak içermelidir.
- Özellikli Anahtar Kelime
- Özellik Adı
- Özellik Açıklaması (isteğe bağlı)
Özellik anahtar sözcüğünden sonra bir özellik adı gelmelidir. Özellik dosyasının birden çok satırına yayılabilen isteğe bağlı bir açıklama bölümü içerebilir. Bir özellik dosyası .feature uzantısına sahiptir.
# 2) Senaryo:
Bir senaryo, test edilecek işlevselliğin bir test spesifikasyonudur. İdeal olarak, bir özellik dosyası, özelliğin bir parçası olarak bir veya daha fazla senaryo içerebilir. Bir senaryo birden çok test adımı içerir. Salatalık standartlarına göre, bir senaryo 3-5 test adımı içermelidir çünkü uzun senaryolar adım sayısı arttıkça ifade gücünü kaybetme eğilimindedir.
Bir senaryo aşağıdaki adımları içerebilir:
- Bir kullanıcı tarafından gerçekleştirilecek eylem.
- Eylemin Beklenen Sonuçları.
Gherkin dilinde, bir senaryo aşağıdaki anahtar kelimeleri içermelidir:
- Verilen
- Ne zaman
- Sonra
- Ve
Verilen:
Verilen anahtar kelime, belirli bir senaryoyu yürütmek için ön koşulları belirtmek için kullanılır. Bir senaryo birden fazla Verilen ifade içerebilir veya bir senaryo için Verilen herhangi bir ifade olmayabilir.
Ne zaman:
Bu anahtar sözcük, kullanıcı tarafından gerçekleştirilen eylemi veya bir düğmeyi tıklama, metin kutusuna veri girme vb. Gibi bir olayı belirtmek için kullanılır. Tek bir senaryoda birden çok when ifadesi olabilir.
Sonra:
Daha sonra anahtar kelime, kullanıcı tarafından gerçekleştirilen bir eylemin beklenen sonucunu belirtmek için kullanılır. İdeal olarak, kullanıcı eylemlerinin beklenen sonucunu anlamak için When anahtar sözcüğünden sonra Then anahtar sözcüğü gelmelidir.
Ve:
Ve anahtar kelime, birden çok ifadeyi birleştirmek için bir bağlantılı anahtar kelime olarak kullanılır. Örneğin, Bir senaryodaki birden çok Given ve When ifadesi 'Ve' anahtar kelimesi kullanılarak birleştirilebilir.
# 3) Senaryo Özeti:
Senaryo taslağı, senaryoların parametrelendirilmesinin bir yoludur.
Bu ideal olarak aynı senaryonun birden fazla veri kümesi için yürütülmesi gerektiğinde kullanılır, ancak test adımları aynı kalır. Senaryo Ana Hattının ardından, her parametre için değer kümesini belirten 'Örnekler' anahtar kelimesi gelmelidir.
Aşağıda, Senaryo Taslağı kavramını anlamak için örnek verilmiştir:
Misal:
Senaryo Özeti: Bir dosya yükle
Verilen bir kullanıcının dosya yükleme ekranında olduğu.
Ne zaman kullanıcı, Gözat düğmesini tıklar.
Ve kullanıcı yükleme metin kutusuna girer.
Ve kullanıcı enter düğmesine tıklar.
Sonra dosya yüklemesinin başarılı olduğunu doğrular.
Örnekler:
| dosya adı |
| dosya1 |
| dosya2 |
Senaryo taslağı içindeki parametreler '' karakterleriyle belirtilmelidir. Parametre için veri değerlerinin bir listesi, Boru (|) sembolü kullanılarak belirtilmelidir.
# 4) Arka Plan:
Arka plan anahtar sözcüğü, verilen birden çok ifadeyi tek bir grupta gruplamak için kullanılır.
Bu genellikle, bir özellik dosyasının her senaryosunda aynı verilen ifadeler kümesi tekrarlandığında kullanılır. Her senaryo için verilen ifadeleri tekrar tekrar belirtmek yerine, ilk senaryodan önce 'Arka Plan' anahtar kelimesiyle belirtilebilirler.
Misal:
Arka fon:
Verilen kullanıcı uygulama giriş sayfasında
Salatalık Turşusu Çerçevesinin Avantajları
Aşağıda, Cucumber'ı günümüzün kurumsal dünyasında hızla gelişen Agile metodolojisi için ideal bir seçim haline getiren Cucumber Gherkin çerçevesinin avantajları verilmiştir:
- Salatalık açık kaynaklı bir araçtır.
- Düz Metin gösterimi, teknik olmayan kullanıcıların senaryoları anlamasını kolaylaştırır.
- İş Analistleri, Geliştiriciler ve Kalite Güvence personeli gibi çeşitli proje paydaşları arasındaki iletişim boşluğunu kapatır.
- Salatalık aracı kullanılarak geliştirilen otomasyon testi senaryolarının bakımı ve anlaşılması daha kolaydır.
- Selenium ve Capybara gibi diğer araçlarla entegrasyonu kolaydır.
Salatalığın Selenyum İle Entegrasyonu
Salatalık ve Selenyum, en güçlü iki fonksiyonel test aracıdır. Salatalığın Selenium Webdriver ile entegrasyonu, bir proje ekibinin teknik olmayan çeşitli üyelerinin uygulama akışını anlamasına yardımcı olur.
Hıyar'ın Selenium Webdriver ile entegrasyonu için izlenecek adımlar aşağıda verilmiştir:
Aşama 1:
Hıyar, gerekli JAR dosyaları indirilerek Selenium Webdriver ile entegre edilebilir.
Selenium Webdriver ile Cucumber kullanmak için indirilecek JAR dosyalarının listesi aşağıda verilmiştir:
- kapsam-2.1.1.jar
- salatalık-çekirdek-1.2.2.jar
- salatalık-java-1.2.2.jar
- salatalık-junit-1.2.2.jar
- salatalık-jvm-deps-1.0.3.jar
- salatalık-raporlama-0.1.0.jar
- kornişon-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Yukarıdaki JAR Dosyaları Maven'den indirilebilir İnternet sitesi .
Yukarıdaki JAR Dosyalarının her biri yukarıdaki web sitesinden ayrı ayrı indirilmelidir.
Adım 2:
Eclipse'de yeni bir proje oluşturun ve yukarıdaki JAR dosyalarını projeye ekleyin. JAR dosyalarını projeye eklemek için, project -> Build Path -> Build Path Configure.
Tıklamak Harici JAR’ları ekleyin düğmesine tıklayın ve yukarıdaki JAR dosyalarının listesini projeye ekleyin.
Aşama 3:
Özellik dosyalarını ve adım tanımlama dosyalarını oluşturmadan önce, Eclipse'e bir Natural eklentisi yüklememiz gerekiyor. Kopyalayıp yapıştırarak yapılabilir. URL üstüne Yardım -> Yeni Yazılım Kurun -> URL
Tıkla Sonraki düğmesi Eklentiyi Eclipse'e yüklemek için.
Bir Özellik Dosyası Oluşturma
Proje yapısında özellik dosyaları ve adım tanımlama dosyaları için ayrı klasörler oluşturun. Adım tanımlama dosyaları Java kodlama satırlarını içerirken, özellik dosyası Gherkin dili biçiminde İngilizce ifadeler içerir.
- Projeye Sağ Tıklayarak unsur dosyasını depolamak için ayrı bir klasör oluşturun -> Yeni -> Paket .
- Özellik dosyası, proje / paket üzerine Sağ Tıklama -> Yeni -> Dosya .
- Özellik dosyası için bir ad girin. Özellik dosyasının ardından .feature uzantısı gelmelidir
- Proje yapısı aşağıdaki yapıya benzemelidir.
Adım Tanımlama Dosyası Oluşturma
Özellik dosyasının her adımı, karşılık gelen bir adım tanımına eşlenmelidir. Salatalık Turşusu dosyasında kullanılan etiketler @Given, @When ve @Then etiketleri kullanılarak adım tanımına eşlenmelidir.
Aşağıda bir adım tanımlama dosyasının sözdizimi verilmiştir:
Sözdizimi:
@TagName (“^ Adım Adı $”)
Genel void methodName ()
{
Yöntem Tanımı
}
xbox 360 için vr kulaklık var mı
Adım isimlerinin önüne karat (^) sembolü ve ($) sembolü eklenmelidir. Yöntem adı, Java kodlama standartlarına göre kabul edilebilir herhangi bir geçerli ad olabilir. Yöntem tanımı, Java veya test edenin tercih ettiği herhangi bir başka programlama dilinde kodlama ifadelerini içerir.
Özellik Dosyası ve Adım Tanımı Dosya Örnekleri
Özellik dosyası ve adım tanım dosyası oluşturmak için aşağıdaki senaryo kullanılabilir:
Senaryo:
- Test edilen bir uygulamanın Oturum Açma sayfasını açın.
- Kullanıcı adını girin
- Şifreyi gir
- Oturum Aç düğmesine tıklayın.
- Kullanıcı girişinin başarılı olup olmadığını doğrulayın.
Özellik Dosyası:
Yukarıdaki senaryo aşağıdaki gibi bir özellik dosyası şeklinde yazılabilir:
Özellik: Test edilen bir uygulamaya giriş yapın.
Senaryo: Uygulamaya giriş yapın.
Verilen Chrome tarayıcısını açın ve uygulamayı başlatın.
Ne zaman Kullanıcı, Kullanıcı Adı alanına kullanıcı adını girer.
Ve Kullanıcı, Parola alanına bir parola girer.
Ne zaman Kullanıcı Oturum Aç düğmesine tıklar.
Adım Tanım Dosyası:
Yukarıdaki özellikte, bir dosya, aşağıda gösterildiği gibi karşılık gelen adım tanım dosyasına eşlenebilir. Unutmayın ki özellik dosyası ile adım tanımlama dosyası arasında bir bağlantı sağlamak için bir test çalıştırıcı dosyası oluşturulması gerekir.
Aşağıda, özellik dosyasına göre adım tanım dosyasının temsili verilmiştir.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
TestRunner sınıfı, özellik dosyası ile adım tanımlama dosyası arasındaki bağlantıyı sağlamak için kullanılır. Aşağıda TestRunner sınıfının nasıl göründüğünün örnek temsili bulunmaktadır. Bir TestRunner sınıfı, genellikle sınıf tanımı olmayan boş bir sınıftır.
Package com.sample.TestRunner import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features='Features',glue={'StepDefinition'}) public class Runner { }
Özellik dosyalarının ve adım tanımlama dosyalarının çalıştırılması için TestRunner sınıf dosyasını çalıştırmamız gerekir.
Örnekler
Aşağıda, çeşitli senaryoların özellik dosyası gösterimi verilmiştir.
Örnek 1:
Kullanıcı adı ve şifrenin giriş sayfasında mevcut olup olmadığını doğrulamak için:
Özellik: Bir oturum açma sayfasında kullanıcı adı ve şifre alanlarının görüntülendiğini doğrulayın.
Senaryo: Kullanıcı adı ve şifre alanlarının görüntülenmesini doğrulamak için.
Verilen Kullanıcı Firefox tarayıcısını açar ve Test Edilen Uygulama'ya gider.
Ne zaman Kullanıcı bir Oturum Açma sayfasına gider.
Sonra Oturum açma sayfasındaki kullanıcı adı alanının görüntülendiğini doğrulayın.
Ve Oturum açma sayfasındaki şifre alanının görüntülendiğini doğrulayın.
Örnek 2:
Aşağıda, Salatalık Turşusu'ndaki senaryo anahat anahtar kelimesi örneği verilmiştir:
Özellik: Birden çok test verisi kümesi için oturum açma işleminin başarılı olup olmadığını doğrulayın.
Senaryo Özeti: Birden çok test verisi seti için oturum açma işleminin başarılı olup olmadığını doğrulamak için.
Verilen Chrome tarayıcısını açın ve uygulamayı başlatın.
Ne zaman Kullanıcı, KullanıcıAdı alanına girer.
Ve Kullanıcı Şifre alanına girer.
Ne zaman Kullanıcı Oturum Aç düğmesine tıklar.
Örnekler:
| kullanıcı adı | şifre |
| kullanıcı1 | şifre1 |
| kullanıcı2 | şifre2 |
Sonuç
- BDD, basit düz metin gösteriminde bir uygulamanın işlevselliğini anlamak için kullanılan bir metodolojidir.
- Salatalık, bir uygulamanın kabul testlerini yazmak için Davranış Odaklı Geliştirme'yi kullanan bir araçtır. Çeşitli proje paydaşları arasındaki iletişim boşluğunu kapatmak için kullanılır.
- Cucumber'ın ana kullanımı, özellik dosyalarının teknik olmayan kullanıcılar tarafından kullanımını anlamadaki basitliğinde yatmaktadır.
Bu Salatalık aracını Gherkin dilini kullanarak denemek için çok geç değil.
Önerilen Kaynaklar
- Geb Eğitimi - Geb Aracını Kullanarak Tarayıcı Otomasyon Testi
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Salatalık Aracı ve Selenyum Kullanarak Otomasyon Testi - Selenyum Eğitimi # 30
- Otomasyon Testi Nedir (Test Otomasyonunu Başlatmak için Nihai Kılavuz)
- Spock Eğitimi: Spock ve Groovy ile Test Etme
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Yıkıcı Muayene ve Tahribatsız Muayene Eğitimi
- Fonksiyonel Test ve Fonksiyonel Olmayan Test