Bu eğitimde Cucumber'ın Selenium Webdriver ile nasıl entegre edileceğini öğreneceksiniz.
Salatalık nedir?
Salatalık, Davranış Odaklı Geliştirme'yi (BDD) destekleyen bir test yaklaşımıdır. Gherkin dili kullanılarak basit bir İngilizce metinle uygulamanın davranışını açıklar.
Daha fazla bilgi için - https://www.guru99.com/cucumber-tutorials.html
Selenyum nedir?
Selenium, web tabanlı uygulamanın Fonksiyonel Testi için bir otomasyon aracıdır. Selenium, java, ruby, python C # gibi farklı dilleri destekler.
Daha fazla bilgi için - https://www.guru99.com/selenium-tutorial.html
Bu Salatalık eğitiminde öğreneceğiz-
- Selenyum ile Salatalık neden kullanılır?
- Selenyum ile Salatalık kullanmak için ön koşul.
- Selenyum ile Salatalık Kullanarak Otomasyon Testi.
- Senaryo 1: Konsoldaki metni yazdırın.
- Senaryo 2: Oturum Açma Kimlik Bilgilerini girin ve değeri sıfırlayın.
- Senaryo 3: Guru99'da oturum açma Kimlik Bilgilerini girin ve değeri sıfırlayın. Bunu 3 set veri için yapın.
Selenyum ile Salatalık neden kullanılır?
Salatalık ve Selenyum iki popüler teknolojidir.
Kuruluşların çoğu, fonksiyonel testler için Selenium kullanıyor. Selenium kullanan bu kuruluşlar, Salatalık uygulama akışını okumayı ve anlamayı kolaylaştırdığı için Selenium'u Salatalık ile entegre etmek isteyen kuruluşlar .
Salatalık aracı, aşağıdaki kişiler arasında köprü görevi gören Davranış Odaklı Geliştirme çerçevesine dayanmaktadır :
- Yazılım Mühendisi ve İş Analisti.
- Manuel Test Cihazı ve Otomasyon Test Cihazı.
- Manuel Test Cihazı ve Geliştiriciler.
Cucumber BDD çerçevesi , müşterinin Düz Metin biçiminde olan Gherkin dilini kullandığı için uygulama kodunu anlamasına da yarar . Kuruluştaki herkes yazılımın davranışını anlayabilir. Gherkin sözdizimi okunabilir ve anlaşılabilir basit bir metindir.
Selenyum ile Salatalık kullanmak için ön koşul
Salatalık Selenium entegrasyonuna başlamadan önce aşağıdaki maddelere ihtiyacımız var:
- Selenyum kavanoz dosyaları:
- Selenium-server-bağımsız
Http://www.seleniumhq.org/download/ adresinden indirilebilir
Salatalık için Jar dosyaları:
- Hıyar çekirdeği
- Salatalık-html
- cobertura kod kapsamı
- Salatalık-java
- Salatalık
- Salatalık-jvm-deps
- Salatalık raporlama
- Hemcrest çekirdek
- Kornişon
- Junit
Https://mvnrepository.com/search?q=Cucumber adresinden indirilebilir
Dosyaları tek tek aramanız ve tek tek indirmeniz gerekir.
Örneğin, size jar dosyalarından birini, yani "Salatalık çekirdeği" nden birini indirmenizi göstereceğiz.
Yukarıdaki indirme bağlantısına tıklayın. Aşağıdaki siteye yönlendirir. Şimdi belirli bir kavanozu, yani aşağıda gösterilen ekran görüntüsü gibi 'Salatalık Çekirdeği' arayın:
Sonraki sayfada, 1.2.2 sürümüne tıklayın,
Bir sonraki ekranda, 'Salatalık Çekirdeği' kavanoz dosyasını almak için indir'e tıklayın.
Not : Kolaylığınız için, Maven'den indirilmesi gereken jar dosyalarını burada bir araya getirdik. Zamanla bu kavanozlar güncellenebilir ve uyumsuz hale gelebilir. Bunları yukarıda gösterilen yöntemi kullanarak indirmeniz istenir.
Selenyum ile Salatalık Kullanarak Otomasyon Testi.
Salatalığı selenyum ile kullanma adımlarını adım adım inceleyelim. Burada 3 senaryoyu ele alacağız:
- Senaryo 1: Konsoldaki metni yazdırın.
- Senaryo 2: Oturum Açma Kimlik Bilgilerini girin ve değeri sıfırlayın.
- Senaryo 3: Guru99'da oturum açma Kimlik Bilgilerini girin ve değeri sıfırlayın. Bunu 3 set veri için yapın.
Senaryo 1: Konsoldaki metni yazdırın.
Bu senaryoda, sadece Hıyar kullanarak konsoldaki metni yazdırıyoruz.
Adım 1) Tutulmada Proje Oluşturun.
Aşağıdaki ekran görüntüsünde gösterildiği gibi "CucumberWithSelenium" adıyla Java projesi oluşturun.
Adım 2) Projeye Jar dosyalarını eklemek.
Proje'ye sağ tıklayın> Özellikler'i seçin> Java Derleme Yoluna Git. Daha önce indirilen tüm kitaplıkları ekleyin.
Adım 3) Özellik dosyası oluşturma
Özellik dosyası oluşturmak için öncelikle aşağıdaki ekran görüntüsünde gösterildiği gibi özellikler klasörü oluşturun.
Şimdi Klasör adı 'Özellikler'i girin ve' Bitir 'Düğmesine tıklayın.
Şimdi, "MyTest.feature" adıyla "Özellikler" klasöründe özellik dosyası oluşturun - İşlem, bir klasör oluşturmaya benzer
Not: Bunun çalışması için Cucumber Eclipse Plugin'i yüklemeniz gerekebilir. Goto - Yardım -> Yeni Yazılım Kur -> http://cucumber.github.io/cucumber-eclipse/update-site/ bağlantısını kopyalayıp yapıştırın ve yükleyin
Adım 4) Senaryolar yazın.
Aşağıdaki satırlar, aşağıda gösterildiği gibi Gherkin dili kullanılarak 'MyTest.feature' dosyasında yazılmıştır:
Feature: Reset functionality on login page of Application
Scenario: Verification of Reset button
Given Open the Firefox and launch the application
When Enter the Username and Password
Then Reset the credential
Kod Açıklama
Satır 1) Bu satırda iş işlevselliği yazıyoruz.
Satır 2) Bu satırda test etmek için bir senaryo yazıyoruz.
Satır 3) Bu satırda ön koşulu tanımlıyoruz.
Satır 4) Bu satırda gerçekleştirmemiz gereken eylemi tanımlıyoruz.
Satır 4) Bu satırda beklenen sonucu veya sonucu tanımlıyoruz.
Adım 5) Selenium Cucumber çerçeve tasarımı için selenyum test çalıştırıcı komut dosyası yazma
Burada 'TestRunner' paketini ve ardından altında 'Runner.java' sınıf dosyasını oluşturuyoruz.
package 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{}
Yukarıdaki Cucumber Java örnek kodunda, aşağıdaki ek açıklamaları kullanarak salatalık testini çalıştırıyoruz:
@RunWith () ek açıklaması, testlerimizi yürütmeye başlamak için test koşucusu sınıfından bahseder.
@CucmberOptions () ek açıklaması, özellik dosyası, adım tanımı vb. Gibi salatalık testimiz için bazı özellikleri ayarlamak için kullanılır.
TestRunner dosyasının ekran görüntüsü.
Adım 6) Adım Tanımlama komut dosyası oluşturma.
Şimdi burada 'StepDefinition' paketini ve ardından bunun altında 'Steps.java' komut dosyasını oluşturuyoruz. Burada testi Salatalık yöntemleriyle gerçekleştirmek için aslında bir selenyum betiği yazıyoruz.
package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps {@Given("^Open the Firefox and launch the application$")public void open_the_Firefox_and_launch_the_application() throws Throwable{System.out.println("This Step open the Firefox and launch the application.");}@When("^Enter the Username and Password$")public void enter_the_Username_and_Password() throws Throwable{System.out.println("This step enter the Username and Password on the login page.");}@Then("^Reset the credential$")public void Reset_the_credential() throws Throwable{System.out.println("This step click on the Reset button.");}}
Yukarıdaki kodda, sınıf 'Adımlar' adıyla oluşturulur. Hıyar notu, özellik dosyası ile haritalamak için kullanılır. Her bir açıklama yöntemi tanımlanmıştır:
@ Verilen açıklama firefox'u açmak ve uygulamayı başlatmak için yöntemi tanımlayın
@ Ek açıklama kullanıcı adı ve parolayı girmek için bir yöntem tanımladığında
@ Ardından ek açıklama, kimlik bilgilerini sıfırlamak için yöntemi tanımlayın
Her yöntemin altında sadece bir mesaj yazdırıyoruz.
Aşağıda, 'Steps.java' betiğinin ve proje ağacının ekran görüntüsü, nasıl göründüğüdür.
Not: Adım tanımı, bu salatalık yöntemi altında gerçekleştirmek istediğiniz adımlardan başka bir şey değildir.
Adım 7) Komut Dosyasını Çalıştırma.
Kullanıcı bu betiği Test çalıştırıcı betiğinden, yani aşağıdaki ekran görüntüsünde gösterildiği gibi 'Runner.java'dan çalıştırabilir.
Adım 8) Çıkışı analiz edin.
'Runner.java' komut dosyası çalıştırıldığında, konsolda metin görüntülenir. 'Steps.java' komut dosyasında tanımlanan metnin aynısıdır.
Senaryo 2: Oturum Açma Kimlik Bilgilerini girin ve değeri sıfırlayın.
Burada sadece Guru99 demo oturum açma sayfasına Credential gireceğiz ve değeri sıfırlayacağız
Senaryo 2 için sadece 'Steps.java' komut dosyasını güncellememiz gerekiyor. Burada aslında selenyum betiğini aşağıdaki adımlarda gösterildiği gibi yazıyoruz. Öncelikle bu projeye Selenium jar dosyasını eklememiz gerekiyor.
Adım 1) Burada, aşağıdaki kodda ve ekran görüntüsünde gösterildiği gibi 'Steps.java' komut dosyasını güncelliyoruz.
package StepDefinition;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps {WebDriver driver;@Given("^Open the Firefox and launch the application$")public void open_the_Firefox_and_launch_the_application() throws Throwable{System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");driver= new FirefoxDriver();driver.manage().window().maximize();driver.get("http://demo.guru99.com/v4");}@When("^Enter the Username and Password$")public void enter_the_Username_and_Password() throws Throwable{driver.findElement(By.name("uid")).sendKeys("username12");driver.findElement(By.name("password")).sendKeys("password12");}@Then("^Reset the credential$")public void Reset_the_credential() throws Throwable{driver.findElement(By.name("btnReset")).click();}}
Yukarıdaki selenyum betiğinin ekran görüntüsü.
Adım 2) Komut dosyasını yürütün.
Güncellemeden sonra Runner.java'yı çalıştırıyoruz.
Adım 3) Çıkışı analiz edin.
Çıktıda şunları görebilirsiniz:
- Tarayıcı açıldı.
- Guru99 banka demo sitesi açıldı.
- Kullanıcı adı ve şifre giriş sayfasına yerleştirilir.
- Değerleri sıfırlayın.
Senaryo 3: Guru99'da oturum açma Kimlik Bilgilerini girin ve değeri sıfırlayın. Bunu 3 set veri için yapın.
Burada hem 'Step.java'yı hem de özellik dosyasını güncellememiz gerekiyor.
Adım 1) Özellik dosyasını aşağıda gösterildiği gibi güncelleyin:
Here we update the feature file with 'Scenario Outline' and 'examples' syntax.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with numbers of credential
Given Open the Firefox and launch the application
When Enter the Username
and Password Then Reset the credential
Examples:
|username |password |
|User1 |password1 |
|User2 |password2 |
|User3 |password3 |
// In this line we define the set of data.
Adım 2) Şimdi Step.java komut dosyasını güncelleyin.
Burada, aşağıda gösterilen güncellenmiş komut dosyası parametrelerini geçmek için yöntemleri güncelliyoruz:
package StepDefinition;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps {WebDriver driver;@Given("^Open the Firefox and launch the application$")public void open_the_Firefox_and_launch_the_application() throws Throwable{System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");driver= new FirefoxDriver();driver.manage().window().maximize();driver.get("www.demo.guru99.com/v4");}@When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")public void enter_the_Username_and_Password(String username,String password) throws Throwable{driver.findElement(By.name("uid")).sendKeys(username);driver.findElement(By.name("password")).sendKeys(password);}@Then("^Reset the credential$")public void Reset_the_credential() throws Throwable{driver.findElement(By.name("btnReset")).click();}}
Adım 3) Şimdi güncellenmiş komut dosyasını çalıştırın.
Aşağıdaki ekran, komut dosyasının başarılı bir şekilde yürütülmesini ve her bir veri setinin harcadığı zamanı gösterir.
Adım 4) Çıkışı analiz edin.
Çıktıda şunları görebilirsiniz:
Veri setlerinin sayısı, yani 3 set için aşağıdaki çıktı tekrarlanır.
- Tarayıcı açıldı.
- Guru99 banka demo sitesi açıldı.
- Kullanıcı adı ve şifre giriş sayfasına yerleştirilir.
- Değerleri sıfırlayın.
Sonuç.
Salatalık çok popüler bir BDD aracıdır. Okuması kolaydır ve teknik ve teknik olmayan kişiler dahil tüm paydaşlar tarafından anlaşılabilir.
Salatalık aşağıdaki 3 adımda Selenium ile entegre edilebilir
- Gherkin dilini kullanarak özelliği ve senaryoları adım adım tanımlayan özellik dosyası oluşturun.
- Testrunner dosyası oluşturun. Bu dosyada Cucumber'ı Selenium'da BDD framework ile entegre ettik. Bu betiği çalıştırıyoruz.
- Creat Step tanımı, bu paket altında tanımlanan gerçek selenyum betiği.