Selenium 'da Cucumber (BDD Çerçeve Eğitimi)

⚡ Akıllı Özet

Selenium 'da Cucumber Bu, sade İngilizce Gherkin sözdizimini bir araya getiren güçlü bir Davranış Odaklı Gelişim (BDD) çerçevesi oluşturur. Selenium WebDriver otomasyonu. Bu eğitim, ön koşulları açıklıyor, üç uygulamalı senaryoyu ele alıyor ve özellik dosyalarının, adım tanımlarının ve bir TestRunner sınıfının tarayıcı testlerini yürütmek için nasıl entegre olduğunu gösteriyor.

  • 🥒 Temel Tanım: Cucumber Gherkin kullanarak uygulama davranışını sade bir dille açıklayan bir BDD test aracıdır ve Selenium Altta yatan tarayıcı işlemlerini yönlendirir.
  • 🤝 Paydaş Köprüsü: Cucumber İş analistlerini, manuel test uzmanlarını, otomasyon mühendislerini ve geliştiricileri paylaşılan, okunabilir bir test spesifikasyonu aracılığıyla birbirine bağlar.
  • ???? Gerekli Kavanozlar: Selenium bağımsız, Cucumber-çekirdek, Cucumber-java, Cucumber-junit, Gherkin, JUnitHamcrest-core ise minimum bağımlılık kümesini oluşturur.
  • 🧱 Üç Proje Dosyası: Senaryoları içeren bir .feature dosyası, bir Steps.java adım tanımlama sınıfı ve @ işaretiyle tanımlanmış bir Runner.java TestRunner dosyası.CucumberSeçenekler yapıştırıcı.
  • 🔁 Veri Odaklı Testler: Senaryo Anahatı ve Örnekler tablolarını kullanarak, aynı iş akışını tek bir çalıştırmada birden fazla kimlik bilgisi kümesiyle uygulayabilirsiniz.

Selenium 'da Cucumber (BDD Çerçeve Eğitimi)

Bu eğitimde nasıl entegre edileceğini öğreneceksiniz Cucumber 'da Selenium Okunabilir, bakımı kolay ve veri odaklı bir Davranış Odaklı Geliştirme (BDD) çerçevesi oluşturmak için WebDriver.

Nedir? Cucumber?

Cucumber Davranış Odaklı Geliştirme (BDD)'yi destekleyen bir test aracıdır. Uygulamanın davranışını Gherkin dilini kullanarak basit İngilizce metinle tanımlar; bu da geliştirici olmayanların programlama dili öğrenmeden test spesifikasyonlarına katkıda bulunmalarını sağlar. Daha fazla bilgi için web sitemizi ziyaret edin. Cucumber öğretici.

Nedir? Selenium?

Selenium Otomasyon için kullanılan bir araçtır. Fonksiyonel Testler web tabanlı uygulamalar. Selenium birden fazla programlama dilini destekler, bunlar arasında JavaYakut, Pythonve C# dillerini desteklemesi, farklı teknik geçmişlere sahip ekipler için doğal bir uyum sağlıyor. Daha fazla bilgi için sayfamızı ziyaret edin. Selenium öğretici.

Neden kullan Cucumber 'da Selenium?

Cucumber hem de Selenium En yaygın olarak kullanılan test teknolojilerinden ikisidir. Çoğu kuruluş zaten bunları kullanmaktadır. Selenium Fonksiyonel testler için ve katmanlama yapmak istiyorum. Cucumber üstte çünkü Cucumber Başvuru akışını okumayı ve anlamayı kolaylaştırır..

Cucumber Davranış Odaklı Gelişim çerçevesine dayanmaktadır. köprü görevi görüyor Aşağıdaki roller arasında:

  1. Yazılım Mühendisi ve İş Analisti.
  2. Manuel Test Cihazı ve Otomasyon Test Cihazı.
  3. Manuel Test Cihazı ve Geliştiriciler.

MKS Cucumber BDD çerçevesi ayrıca Müşterilerin uygulama kodunu anlamalarına yardımcı olur. Çünkü düz metin halinde olan Gherkin dilini kullanıyor. Kuruluştaki herkes yazılımın davranışını takip edebilir. Gherkin sözdizimi basit ve okunabilir İngilizce'dir, bu da teknik olmayan okuyucular için spesifikasyonu erişilebilir kılar.

Cucumber 'da Selenium BDD çerçevesine genel bakış

Kullanım Ön Koşulları Cucumber 'da Selenium

Başlamadan önce Cucumber-Selenium Entegrasyon için aşağıdaki öğelere ihtiyacınız var:

Selenium kavanoz dosyaları:

  • Selenium-sunucu-bağımsız

Bunları şu adresten indirebilirsiniz: https://www.selenium.dev/downloads/.

Selenium jar dosyaları için indirme sayfası

Jar dosyaları için Cucumber:

  • Cucumber-çekirdek
  • Cucumber-html
  • Cobertura kod kapsamı
  • Cucumber-Java
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-raporlama
  • Hamcrest-çekirdek
  • salatalık
  • JUnit

Bunları şu adresten indirebilirsiniz: https://mvnrepository.com/search?q=CucumberHer bir JAR dosyasını tek tek arayıp indirmeniz gerekecek.

Örneğin, "jar" dosyalarından birini şu şekilde indirebilirsiniz:Cucumber-core” kütüphanesi.

Yukarıdaki indirme bağlantısına tıklayın. Bu sizi Maven deposu sitesine yönlendirecektir. Şimdi belirli jar dosyasını arayın (bu durumda “Cucumber Aşağıdaki ekran görüntüsünde gösterildiği gibi "Çekirdek":

Aranıyor Cucumber Maven deposundaki temel jar dosyası

Sonraki sayfada, 1.2.2 sürümüne tıklayın:

Seç Cucumber Maven'da çekirdek sürüm 1.2.2

Sonraki ekranda, dosyayı indirmek için İndir'e tıklayın. Cucumber Ana jar dosyası:

Atomic Cüzdanı indirin :  Cucumber Çekirdek jar dosyası

Not: Kolaylık sağlamak amacıyla, gerekli Maven jar dosyalarını bir araya getirdik. okuyunBu JAR dosyaları zamanla güncelliğini yitirebilir ve uyumsuz hale gelebilir, bu nedenle yukarıda açıklanan yöntemi kullanarak bunları kendiniz indirmenizi öneririz.

Otomasyon Testi Kullanarak Cucumber 'da Selenium

Şimdi nasıl kullanılacağına birlikte bakalım. Cucumber 'da Selenium Adım adım. Burada üç senaryoyu ele alacağız:

  • Senaryo 1: Konsoldaki metni yazdırın.
  • Senaryo 2: Giriş bilgilerini girin ve değeri sıfırlayın.
  • Senaryo 3: Giriş kimlik bilgilerini girin Guru99'a eşitleyin ve değeri sıfırlayın — bu işlem 3 veri seti için tekrarlandı.

Senaryo 1: Konsola Metin Yazdırma

Bu senaryoda, konsola basitçe metin yazdırıyoruz. Cucumber.

) 1 Adım içinde bir proje oluşturun Eclipse.

Hat için bir Java adı olan proje "CucumberİleSeleniumbaşlıklı bir kılavuz yayınladı Aşağıdaki ekran görüntüsünde gösterildiği gibi.

Oluştur CucumberİleSelenium Java projede Eclipse

Java proje adı yapılandırması Eclipse

) 2 Adım JAR dosyalarını projeye ekleyin.

Projeye sağ tıklayın > Özellikler > Java Derleme Yolu. Daha önce indirdiğiniz tüm kütüphaneleri ekleyin.

Ekle Cucumber hem de Selenium jar dosyalarına Java Yol Oluştur

) 3 Adım Bir özellik dosyası oluşturun.

Bir özellik dosyası oluşturmak için öncelikle aşağıdaki ekran görüntüsünde gösterildiği gibi bir "Features" klasörü oluşturun.

Özellikler klasörünü oluşturun. Eclipse proje

Klasör adını "Features" olarak girin ve Bitir'e tıklayın.

Özellikler klasörünün adını yapılandırın. Eclipse

Proje gezgininde Özellikler klasörü görünür.

Şimdi, Features klasörünün içine bir özellik dosyası oluşturun ve adını bu dosyadan alın. MyTest.özellikBu işlem, klasör oluşturmaya benzer.

Features klasöründe MyTest.feature dosyasını oluşturun.

Not: yüklemeniz gerekebilir Cucumber Eclipse Önce eklentiyi yükleyin. Yardım → Yeni Yazılım Yükle bölümüne gidin ve bağlantıyı yapıştırın. http://cucumber.github.io/cucumber-eclipse/update-site/ve yükleyin.

) 4 Adım Senaryoları yazın.

Aşağıdaki satırlar şu şekilde yazılmıştır: MyTest.özellik Gherkin dilini kullanarak:

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

Code açıklama

Satır 1) İşlevselliği tanımlar.

Satır 2) Test edilecek bir senaryo tanımlar.

Satır 3) Ön koşulu tanımlar (Verilen).

Satır 4) Gerçekleştirilecek eylemi tanımlar (Ne zaman).

Satır 5) Beklenen sonucu veya çıktıyı tanımlar (O zaman).

) 5 Adım Yaz Selenium TestRunner betiği için Cucumber Çerçeve tasarımı.

Hat için bir test koşucusu paket ve sonra bir Runner.java Altındaki sınıf dosyası.

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 Örneğin, şunu çalıştırıyoruz: salatalık testi Aşağıdaki ek açıklamaları kullanarak:

@RunWith() anlatır JUnit Testlerimizi çalıştırmaya başlayan test çalıştırıcı sınıfı hakkında.

@CucumberSeçenekler() Bu ayar, özellik dosyası yolu ve adım tanımlama birleştirme paketi gibi test özelliklerini belirler.

TestRunner dosyasının ekran görüntüsü:

Runner.java TestRunner betiği Cucumber

) 6 Adım Adım Tanımı betiğini oluşturun.

Şimdi bir Adım Tanımı paket ve sonra bir Adımlar.java Altında bir betik dosyası bulunur. Steps.java dosyasının içine şunları yazıyoruz: Selenium Her bir Gherkin adımına karşılık gelen mantık.

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.");
    }
}

Sınıfın adı Adımlar, ve Cucumber Ek açıklamalar, her yöntemi bir özellik dosyası adımına eşler:

@Verilen açma yöntemini tanımlar Firefox ve uygulamayı başlatın.

@Ne zaman Kullanıcı adı ve şifrenin girilme yöntemini tanımlar.

@Daha sonra Kimlik bilgilerini sıfırlama yöntemini tanımlar.

Her bir yöntem, konsola basitçe bir mesaj yazdırır.

Aşağıdaki ekran görüntüsü Steps.java betiğini ve proje ağacını göstermektedir:

Steps.java script ve proje ağacı Eclipse

Not: Adım tanımı, istediğiniz koddur. Cucumber Özellik dosyasındaki bir adımla eşleştiğinde yürütülecek.

) 7 Adım Komut dosyasını yürütün.

Aşağıda gösterildiği gibi, bu komut dosyasını TestRunner dosyasından (Runner.java) çalıştırın.

Çalıştırmak için Runner.java dosyasını çalıştırın. Cucumber test

) 8 Adım Çıktıyı analiz edin.

Runner.java çalıştırıldığında, Cucumber Steps.java dosyasında tanımlanan metni konsola yazdırır.

Konsol çıktısı Cucumber Test uygulaması

Senaryo 2: Giriş Bilgilerini Girin ve Değeri Sıfırlayın

Burada kimlik bilgilerini giriyoruz. Guru99 demo giriş sayfası ve değeri sıfırlayın.

2. Senaryo için sadece güncelleme yapmamız gerekiyor. Adımlar.javaBurada gerçeği ekliyoruz. Selenium kod. Öncelikle şunlardan emin olun: Selenium JAR dosyası projeye eklendi.

Onaylamak Selenium JAR dosyası proje sınıf yolunda bulunuyor.

) 1 Adım Steps.java dosyasını aşağıdaki gibi güncelleyin.

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ıdakilerin ekran görüntüsü Selenium senaryo:

Senaryo 2 Steps.java ile Selenium mantık

) 2 Adım Komut dosyasını yürütün.

Steps.java dosyasını güncelledikten sonra Runner.java dosyasını çalıştırın.

) 3 Adım Çıktıyı analiz edin. Çıktıda şunları göreceksiniz:

  • Tarayıcı başlatıldı.
  • Guru99 numaralı bankanın demo sitesi açıldı.
  • Kullanıcı adı ve şifre giriş sayfasında girilir.
  • Sıfırla düğmesi değerleri temizler.

Senaryo 2 animasyonu gösteriliyor Cucumber Selenium test sürüşü

Senaryo 3: 3 Veri Kümesiyle Giriş ve Sıfırlama Akışını Çalıştırın

Burada her ikisini de güncellememiz gerekiyor. Adımlar.java ve aynı akışı üç farklı kimlik bilgisi setiyle yönlendirmek için kullanılan özellik dosyası.

) 1 Adım Özellik dosyasını aşağıda gösterildiği gibi güncelleyin.

Biz kullanın Senaryo Taslağı hem de Örnekler sözdizimi yani Cucumber Aynı senaryoyu her veri satırında tekrarlar.

Feature: Reset functionality on login page of Application

Scenario Outline: Verification of reset button with multiple credentials

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 |

Senaryo taslağı ve örnekler tablosunu içeren özellik dosyası

) 2 Adım Steps.java dosyasını güncelleyin.

Burada, metot imzalarını Örnekler tablosundaki parametreleri kabul edecek şekilde 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(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();
    }
}

Steps.java dosyası parametreli kimlik bilgileriyle güncellendi.

) 3 Adım Güncellenen komut dosyasını çalıştırın.

Aşağıdaki ekran, başarılı bir yürütmeyi ve her veri kümesi için geçen süreyi göstermektedir.

Üç veri setiyle Senaryo 3'ün başarılı bir şekilde uygulanması

) 4 Adım Çıktıyı analiz edin. Aşağıdaki adımlar, 3 veri kümesinin her biri için tekrarlanır:

  • Tarayıcı başlatıldı.
  • Guru99 numaralı bankanın demo sitesi açıldı.
  • Kullanıcı adı ve şifre giriş sayfasında girilir.
  • Sıfırla düğmesi değerleri temizler.

Senaryo 3 animasyonu, parametrelendirilmiş halini göstermektedir. Cucumber test sürüşü

SSS

Cucumber Gherkin ile yazılmış senaryoları çalıştıran bir BDD çerçevesidir. Selenium Web sayfalarını çalıştıran bir tarayıcı otomasyon kütüphanesidir. Cucumber Tarayıcılarla doğrudan etkileşime girmez, bunun yerine çağrı yapar. Selenium Gerçek kullanıcı arayüzü işlemlerini gerçekleştirmek için adım tanımları.

Cucumber Özellik dosyaları, Feature, Scenario, Given, When, Then, And, But, Scenario Outline ve Examples gibi anahtar kelimelerle senaryoları düzenleyen, sade İngilizce bir alan özel dili olan Gherkin'i kullanır. Gherkin hem teknik hem de teknik olmayan paydaşlar tarafından okunabilir.

Örnekler tablosuyla birlikte Senaryo Anahatı anahtar kelimesini kullanın. Cucumber Her satır için aynı senaryoyu bir kez çalıştırır ve aşağıdaki gibi yer tutucuları değiştirir: Ve Her satırdaki değerlerle birlikte. Bu, veri odaklı standart bir modeldir. Cucumber.

Yapay zeka, kullanıcı hikayelerinden Gherkin senaryoları oluşturur, adım tanımları önerir ve bozuk konum belirleyicileri onarır. SeleniumAyrıca örnek veriler önerir. Yapay zeka asistanları ayrıca yinelenen senaryoları, zayıf iddiaları ve güncelliğini yitirmiş testleri işaretleyerek, uygulama değiştikçe BDD paketinin sürdürülebilirliğini sağlar.

Evet. Yapay zekâ kodlama asistanları Gherkin özellik dosyalarını okur ve eşleşen kodlar üretir. Java veya Kotlin adım tanımları dahil Selenium WebDriver çağrıları, konum belirleme stratejileri ve parametre bağlama işlemleri. Geliştiriciler daha sonra oluşturulan kodu iyileştirerek, başlatma sırasında tekrarlanan kod miktarını önemli ölçüde azaltırlar.ping Yeni BDD süitleri.

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