Selenium ile Cucumber (BDD Çerçevesi)
Bu eğitimde nasıl entegre edileceğini öğreneceksiniz Cucumber ile Selenium Web sürücüsü.
Nedir? Cucumber?
Cucumber Davranış Odaklı Gelişimi (BDD) destekleyen bir test yaklaşımıdır. Uygulamanın davranışını Gherkin dilini kullanarak basit bir İngilizce metinle açıklar.
Daha fazla bilgi edinin – https://www.guru99.com/cucumber-tutorials.html
Nedir? Selenium?
Selenium için bir otomasyon aracıdır Fonksiyonel Testler web tabanlı uygulamanın özelliği. Selenium Java, Ruby, Python C# vb. gibi farklı dilleri destekler.
Daha fazla bilgi edinin – https://www.guru99.com/selenium-tutorial.html
Neden kullanım Cucumber ile Selenium?
Cucumber ve Selenium iki popüler teknolojidir.
Çoğu kuruluş kullanıyor Selenium fonksiyonel testler için. Bu kuruluşları kullanan Selenium, entegre olmak istiyorum Selenium ile Cucumber as Cucumber yapar Uygulama akışının okunması ve anlaşılması kolaydır.
Cucumber Araç, Davranış Odaklı Geliştirme çerçevesine dayanmaktadır. köprü görevi görür Aşağıdaki kişiler arasında:
- Yazılım Mühendisi ve İş Analisti.
- Manuel Test Cihazı ve Otomasyon Test Cihazı.
- Manuel Test Cihazı ve Geliştiriciler.
Cucumber BDD çerçevesi ayrıca müşterinin uygulama kodunu anlamasına fayda sağlar Düz Metin'deki Gherkin dilini kullandığı için. Kuruluştaki herkes yazılımın davranışını anlayabilir. Gherkin'in sözdizimi okunabilir ve anlaşılır, basit bir metindir.
Kullanmak için ön koşul Cucumber ile Selenium
Başlamadan önce Cucumber Selenium Entegrasyon için aşağıdaki öğelere ihtiyacımız var:
- Selenium kavanoz dosyaları:
- Selenium-sunucu-bağımsız
Şu adresten indirilebilir: http://www.seleniumhq.org/download/
Jar dosyaları Cucumber :
- Cucumber-çekirdek
- Cucumber-html
- cobertura kod kapsamı
- Cucumber-Java
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-raporlama
- Hamcrest-çekirdek
- salatalık
- haziran
Şu adresten indirilebilir: https://mvnrepository.com/search?q=Cucumber
Dosyaları tek tek arayıp indirmeniz gerekiyor.
Örneğin size jar dosyalarından birini indirmenizi göstereceğiz, yani “Cucumber-çekirdek."
Yukarıdaki indirme bağlantısına tıklayın. Aşağıdaki siteye yönlendiriyor. Şimdi belirli kavanozu arayın, yani 'Cucumber Aşağıda ekran görüntüsü gösterildiği gibi 'Çekirdek':
Bir sonraki sayfada 1.2.2 versiyonunun üzerine tıklayın,
Bir sonraki ekranda ' indir'e tıklayın.Cucumber Core' jar dosyası.
not: Kolaylığınız için Maven'den indirilmesi gereken jar dosyalarını bir araya getirdik okuyun. Zamanla bu kavanozlar güncellenebilir ve uyumsuz hale gelebilir. Yukarıda gösterilen yöntemi kullanarak bunları indirmeniz istenir.
Otomasyon Testi Kullanarak Cucumber ile Selenium.
Kullanılacak adımları inceleyelim Cucumber selenyum ile adım adım. 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 veri kümesi için yapın.
Senaryo 1: Konsoldaki metni yazdırın.
Bu senaryoda, konsoldaki metni yalnızca şunu kullanarak yazdırıyoruz: Cucumber.
) 1 Adım Eclipse'de proje oluşturun.
oluşturmak Java isimli projeCucumberİleSeleniumAşağıdaki ekran görüntüsünde gösterildiği gibi.
) 2 Adım Jar dosyalarını projeye ekleme.
Projeye Sağ Tıklayın > Özellikleri Seçin > Git Java Yol Oluştur. Daha önce indirilen tüm kitaplıkları ekleyin.
) 3 Adım Ö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ünü oluşturun.
Şimdi 'Özellikler' Klasör adını girin ve 'Son' Düğmesine tıklayın.
Şimdi 'Özellikler' klasöründe “MyTest.feature” adında özellik dosyası oluşturun – İşlem, bir klasör oluşturmaya benzer
Not: yüklemeniz gerekebilir Cucumber Eclipse Bunun çalışması için eklenti. Git — Yardımlar->Yeni Yazılım Yükle->bağlantıyı kopyalayıp yapıştırın http://cucumber.github.io/cucumber-eclipse/update-site/ ve yükle
) 4 Adım Senaryolar yazın.
Aşağıdaki satırlar 'MyTest.feature' dosyasına Gherkin dili kullanılarak aşağıda gösterildiği gibi 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ıra 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 yapmamız gereken eylemi tanımlıyoruz.
Satır 4) Bu satırda beklenen sonucu veya sonucu tanımlarız.
) 5 Adım Selenium testrunner betiği yazmak Selenium Cucumber çerçeve tasarımı
Burada 'TestRunner' paketini ve ardından onun 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ıda Cucumber Java örnek kodu çalıştırıyoruz salatalık testi Aşağıdaki açıklamaları kullanarak:
@RunWith() ek açıklama, testlerimizi yürütmeye başlamak için test çalıştırıcısı sınıfı hakkında bilgi verir.
@CucmberOptions() ek açıklama, salatalık testimiz için özellik dosyası, adım tanımı vb. gibi bazı özellikleri ayarlamak için kullanılır.
TestRunner dosyasının ekran görüntüsü.
) 6 Adım Adım Tanımı komut dosyası oluşturma.
Şimdi burada 'StepDefinition' paketini ve ardından onun altında 'Steps.java' betik dosyasını oluşturuyoruz. Burada aslında testi gerçekleştirmek için bir selenium betiği yazıyoruz Cucumber yöntemleri.
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 'Steps' adıyla oluşturulmuştur. Cucumber ek açıklama, özellik dosyasıyla eşlemek için kullanılır. Her ek açıklama yöntemi tanımlanır:
@Verilen açıklama firefox'u açmak ve uygulamayı başlatmak için yöntemi tanımla
@Ne zaman kullanıcı adı ve şifreyi girmek için açıklama tanımlama yöntemi
@Daha sonra kimlik bilgilerini sıfırlamak için açıklama tanımlama yöntemi
Her yöntemde yalnızca bir mesaj yazdırıyoruz.
Aşağıda 'Steps.java' betiğinin ve proje ağacının ekran görüntüsü ve nasıl göründüğü yer almaktadır.
Not: Adım tanımı, bu salatalık yönteminde gerçekleştirmek istediğiniz adımlardan başka bir şey değildir.
) 7 Adım Komut Dosyasının Yürütülmesi.
Kullanıcı bu betiği aşağıdaki ekran görüntüsünde gösterildiği gibi Test runner betiğinden, yani 'Runner.java'dan çalıştırabilir.
) 8 Adım Çıktıyı analiz edin.
'Runner.java' betiği çalıştırıldığında, metin konsolda görüntülenir. 'Steps.java' betiğinde tanımlanan metnin aynısıdır.
Senaryo 2: Oturum açma kimlik bilgilerini girin ve değeri sıfırlayın.
Burada Guru99 demo giriş sayfasına Kimlik Bilgisini girip değeri sıfırlayacağız
Senaryo 2 için sadece 'Steps.java' betiğini güncellememiz gerekiyor. Burada aslında selenium betiğini aşağıdaki adımlarda gösterildiği gibi yazıyoruz. İlk olarak, şunu eklememiz gerekiyor Selenium jar dosyasını bu projeye ekleyin.
) 1 Adım Burada 'Steps.java' scriptini aşağıdaki kod ve ekran görüntüsündeki gibi 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ü.
) 2 Adım Komut dosyasını yürütün.
Güncellemeden sonra Runner.java'yı çalıştırıyoruz.
) 3 Adım Çıktıyı analiz edin.
Çıktıda aşağıdakileri görebilirsiniz:
- Tarayıcı başlatıldı.
- Guru99 bankası demo sitesi açıldı.
- Kullanıcı adı ve şifre giriş sayfasında yer almaktadır.
- 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 veri kümesi için yapın.
Burada hem 'Step.java'yı hem de özellik dosyasını güncellememiz gerekiyor.
) 1 Adım Ö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 <username>and Password <password> Then Reset the credential Examples: |username |password | |User1 |password1 | |User2 |password2 | |User3 |password3 | // In this line we define the set of data.
) 2 Adım Şimdi Step.java betiğini güncelleyin.
Burada, aşağıda gösterilen güncellenmiş komut dosyasındaki parametreleri iletecek şekilde 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(); } }
) 3 Adım Şimdi güncellenen betiği çalıştırın.
Aşağıdaki ekran, betiğin başarıyla yürütülmesini ve her veri kümesinin harcadığı zamanı gösterir.
) 4 Adım Çıktıyı analiz edin.
Çıktıda aşağıdakileri görebilirsiniz:
Aşağıdaki çıktı, veri seti sayısı, yani 3 set için tekrarlanır.
- Tarayıcı başlatıldı.
- Guru99 bankası demo sitesi açıldı.
- Kullanıcı adı ve şifre giriş sayfasında yer almaktadır.
- Değerleri sıfırlayın.
Sonuç
Cucumber çok popüler bir BDD aracıdır. Okunması kolaydır ve teknik ve teknik olmayan kişiler de dahil olmak üzere tüm paydaşlar tarafından anlaşılabilir.
Cucumber entegre edilebilir Selenium Aşağıdaki 3 adımı kullanarak
- Gherkin dilini kullanarak özelliği ve senaryoları adım adım tanımlayan özellik dosyası oluşturun.
- Testrunner dosyası oluşturun. Bu dosyada entegre ettik Cucumber BDD çerçevesi ile Selenium. Bu scripti çalıştırıyoruz.
- Creat Step tanımı, bu paket altında tanımlanan gerçek Selenyum betiği.