Selenium dengan Cucumber (Tutorial Kerangka Kerja BDD)


Dalam tutorial ini, Anda akan mempelajari cara mengintegrasikan Cucumber dengan Selenium driver web.

Apa itu Cucumber?

Cucumber adalah pendekatan pengujian yang mendukung Behavior Driven Development (BDD). Ini menjelaskan perilaku aplikasi dalam teks bahasa Inggris sederhana menggunakan bahasa Gherkin.

Pelajari lebih lanjut di – https://www.guru99.com/cucumber-tutorials.html

Apa itu Selenium?

Selenium adalah alat otomatisasi untuk Pengujian Fungsional dari aplikasi berbasis web. Selenium mendukung bahasa yang berbeda seperti Java, Ruby, python C#, dll.

Pelajari lebih lanjut di – https://www.guru99.com/selenium-tutorial.html

Mengapa menggunakan Cucumber dengan Selenium?

Cucumber dan Selenium adalah dua teknologi populer.

Sebagian besar organisasi menggunakan Selenium untuk pengujian fungsional. Organisasi-organisasi yang menggunakan Selenium, ingin berintegrasi Selenium dengan Cucumber as Cucumber membuat mudah untuk membaca dan memahami alur aplikasi.

Cucumber alat ini didasarkan pada kerangka Behavior Driven Development yang bertindak sebagai jembatan antara orang-orang berikut ini:

  1. Insinyur Perangkat Lunak dan Analis Bisnis.
  2. Penguji Manual dan Penguji Otomatisasi.
  3. Penguji dan Pengembang Manual.

Cucumber Kerangka BDD juga menguntungkan klien untuk memahami kode aplikasi karena menggunakan bahasa Gherkin yang berupa Plain Text. Siapa pun dalam organisasi dapat memahami perilaku perangkat lunak. Sintaks Gherkin berupa teks sederhana yang dapat dibaca dan dipahami.

Cucumber dengan Selenium

Prasyarat untuk menggunakan Cucumber dengan Selenium

Sebelum kita mulai Cucumber Selenium integrasi, kita memerlukan hal-hal berikut:

  • Selenium file jar:
  • Selenium-server-mandiri

Dapat diunduh di http://www.seleniumhq.org/download/

Prasyarat untuk Menggunakan Cucumber dengan Selenium

File jar Untuk Cucumber :

  • Cucumber-inti
  • Cucumber-html
  • cakupan kode cobertura
  • Cucumber-Jawa
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-pelaporan
  • Inti Hamcrest
  • Ketimun
  • Junit

Dapat diunduh di https://mvnrepository.com/search?q=Cucumber

Anda perlu mencari file dan mendownloadnya satu per satu.

Misalnya, kami akan menunjukkan kepada Anda untuk mengunduh salah satu file jar, yaitu, “Cucumber-inti."

Klik tautan unduhan di atas. Itu dialihkan ke situs di bawah ini. Sekarang cari toples tertentu, yaitu 'Cucumber Inti' seperti yang ditunjukkan gambar di bawah ini:

Prasyarat untuk Menggunakan Cucumber dengan Selenium

Di halaman berikutnya, Klik versi 1.2.2,

Prasyarat untuk Menggunakan Cucumber dengan Selenium

Di layar berikutnya, klik unduh untuk mendapatkan 'Cucumber File jar inti.

Prasyarat untuk Menggunakan Cucumber dengan Selenium

Note: Untuk kemudahan Anda, kami telah menggabungkan file jar yang perlu diunduh dari Maven di sini. Seiring waktu, stoples ini mungkin diperbarui dan menjadi tidak kompatibel. Anda diminta untuk mengunduhnya menggunakan metode yang diilustrasikan di atas.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium.

Mari pelajari langkah-langkah penggunaannya Cucumber dengan selenium langkah demi langkah. Di sini kita akan membahas 3 skenario:

  • Skenario 1: Cetak teks di konsol.
  • Skenario 2: Masukkan Kredensial login dan setel ulang nilainya.
  • Skenario 3: Masukkan Kredensial login di Guru99 & setel ulang nilainya. Lakukan ini untuk 3 set data.

Skenario 1: Cetak teks di konsol.

Dalam skenario ini, kami hanya mencetak teks di konsol dengan menggunakan Cucumber.

Langkah 1) Buat Proyek di Eclipse.

membuat Java proyek dengan nama “CucumberDenganSelenium” seperti yang ditunjukkan pada gambar di bawah.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Langkah 2) Menambahkan file Jar di proyek.

Klik kanan pada Proyek > Pilih Properti > Pergi ke Java Bangun Jalur. Tambahkan semua perpustakaan yang diunduh sebelumnya.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Langkah 3) Membuat file fitur

Untuk membuat file fitur, pertama-tama buat folder fitur seperti gambar di bawah ini.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Sekarang Masukkan nama Folder 'Fitur' dan klik Tombol 'Selesai'.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Sekarang, buat file fitur di folder 'Fitur' dengan nama “MyTest.feature” – Prosesnya mirip dengan membuat folder

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Catatan: Anda mungkin perlu menginstal Cucumber Eclipse Plugin agar ini berfungsi. Goto — Bantuan->Instal Perangkat Lunak Baru->salin tempel tautannya http://cucumber.github.io/cucumber-eclipse/update-site/ dan instal

Langkah 4) Tulis skenario.

Baris di bawah ini ditulis dalam file 'MyTest.feature' menggunakan bahasa Gherkin seperti gambar di bawah ini:

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			

Penjelasan Kode

Baris 1) Di baris ini kami menulis fungsionalitas bisnis.

Baris 2) Di baris ini kami menulis skenario untuk diuji.

Baris 3) Di baris ini kita mendefinisikan prasyarat.

Baris 4) Di baris ini kita mendefinisikan tindakan yang perlu kita lakukan.

Baris 4) Di baris ini kita mendefinisikan hasil atau hasil yang diharapkan.

Langkah 5) Menulis skrip testrunner selenium untuk Selenium Cucumber desain kerangka

Di sini kita membuat paket 'TestRunner' dan kemudian file kelas 'Runner.java' di bawahnya.

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 				
{		

}

Di atas Cucumber Java contoh kode, kita jalankan tes mentimun dengan menggunakan anotasi berikut:

@JalankanDengan() anotasi menceritakan tentang kelas test runner untuk mulai menjalankan pengujian kita.

@CucmberOptions() anotasi digunakan untuk mengatur beberapa properti untuk pengujian mentimun kami seperti file fitur, definisi langkah, dll.

Tangkapan layar file TestRunner.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Langkah 6) Membuat skrip Definisi Langkah.

Sekarang di sini kita membuat paket 'StepDefinition' dan kemudian file skrip 'Steps.java' di bawahnya. Di sini kita benar-benar menulis skrip selenium untuk melakukan pengujian di bawah Cucumber metode.

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

}

Pada kode di atas, kelas dibuat dengan nama 'Langkah'. Cucumber anotasi digunakan untuk memetakan dengan file fitur. Setiap metode anotasi didefinisikan:

@Diberikan anotasi mendefinisikan metode untuk membuka firefox dan meluncurkan aplikasi

@Kapan anotasi menentukan metode untuk memasukkan nama pengguna dan kata sandi

@Kemudian anotasi menentukan metode untuk mengatur ulang kredensial

Di bawah setiap metode, kami hanya mencetak pesan.

Di bawah ini adalah tangkapan layar skrip 'Steps.java' dan pohon proyek, tampilannya.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Catatan: Definisi langkah tidak lain adalah langkah-langkah yang ingin Anda lakukan dalam metode mentimun ini.

Langkah 7) Mengeksekusi Skrip.

Pengguna dapat menjalankan skrip ini dari skrip Test runner, yaitu 'Runner.java' seperti yang ditunjukkan pada gambar di bawah.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Langkah 8) Analisis hasilnya.

Saat menjalankan skrip 'Runner.java', ini akan menampilkan teks di konsol. Ini adalah teks yang sama yang didefinisikan dalam skrip 'Steps.java'.

Pengujian Otomasi Menggunakan Cucumber dengan Selenium

Skenario 2: Masukkan Kredensial login dan setel ulang nilainya.

Disini kita tinggal masuk ke halaman login demo Credential Guru99 dan reset nilainya

Untuk Skenario 2, kita hanya perlu memperbarui skrip 'Steps.java'. Di sini kita benar-benar menulis skrip selenium seperti yang ditunjukkan di bawah ini. Pertama, kita perlu menambahkan Selenium file jar ke proyek ini.

Masukkan Kredensial Login dan Atur Ulang Nilainya

Langkah 1) Di sini kami memperbarui skrip 'Steps.java' seperti yang ditunjukkan pada kode dan tangkapan layar di bawah ini.

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();					
    }		
}		

Tangkapan layar skrip Selenium di atas.

Masukkan Kredensial Login dan Atur Ulang Nilainya

Langkah 2) Jalankan skripnya.

Setelah memperbarui kami menjalankan Runner.java.

Langkah 3) Analisis hasilnya.

Pada output Anda dapat melihat hal berikut:

  • Peramban diluncurkan.
  • Situs demo bank Guru99 dibuka.
  • Nama pengguna dan kata sandi ditempatkan pada halaman login.
  • Atur ulang nilainya.

Masukkan Kredensial Login dan Atur Ulang Nilainya

Skenario 3: Masukkan Kredensial login di Guru99 & setel ulang nilainya. Lakukan ini untuk 3 set data.

Di sini kita perlu memperbarui 'Step.java' dan file fitur.

Langkah 1) Perbarui file fitur seperti yang ditunjukkan di bawah ini:

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.

Masukkan Kredensial Masuk

Langkah 2) Sekarang perbarui skrip Step.java.

Di sini kami memperbarui metode untuk meneruskan parameter, skrip yang diperbarui ditunjukkan di bawah ini:

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();					
    }		
}		

Masukkan Kredensial Masuk

Langkah 3) Sekarang jalankan skrip yang diperbarui.

Layar di bawah ini menunjukkan keberhasilan eksekusi skrip dan waktu yang dibutuhkan oleh setiap kumpulan data.

Masukkan Kredensial Masuk

Langkah 4) Analisis hasilnya.

Pada output Anda dapat melihat hal berikut:

Output di bawah ini diulang untuk jumlah kumpulan data, yaitu 3 set.

  • Peramban diluncurkan.
  • Situs demo bank Guru99 dibuka.
  • Nama pengguna dan kata sandi ditempatkan pada halaman login.
  • Atur ulang nilainya.

Masukkan Kredensial Masuk

Kesimpulan

Cucumber adalah alat BDD yang sangat populer. Mudah dibaca dan dipahami oleh seluruh pemangku kepentingan baik teknis maupun non-teknis.

Cucumber dapat diintegrasikan dengan Selenium menggunakan 3 langkah berikut

  1. Buat file fitur yang menentukan fitur dan skenario langkah demi langkah menggunakan bahasa Gherkin.
  2. Buat file Testrunner. Dalam file ini, kami terintegrasi Cucumber dengan kerangka BDD di Selenium. Kami menjalankan skrip ini.
  3. Definisi Creat Step, skrip selenium sebenarnya yang didefinisikan dalam paket ini.