Selenium dengan Cucumber (Tutorial Kerangka Kerja BDD)
โก Ringkasan Cerdas
Selenium dengan Cucumber membentuk kerangka kerja Behavior Driven Development (BDD) yang ampuh yang menggabungkan sintaks Gherkin berbahasa Inggris sederhana dengan Selenium Otomatisasi WebDriver. Tutorial ini menjelaskan prasyarat, membahas tiga skenario praktik, dan menunjukkan bagaimana file fitur, definisi langkah, dan kelas TestRunner terintegrasi untuk menjalankan pengujian browser.

Dalam tutorial ini, Anda akan mempelajari cara mengintegrasikan Cucumber dengan Selenium WebDriver digunakan untuk membangun kerangka kerja Behavior Driven Development (BDD) yang mudah dibaca, dipelihara, dan berbasis data.
Apa itu Cucumber?
Cucumber adalah alat pengujian yang mendukung Behavior Driven Development (BDD). Alat ini mendeskripsikan perilaku aplikasi dalam teks bahasa Inggris sederhana menggunakan bahasa Gherkin, yang memungkinkan non-pengembang untuk berkontribusi pada spesifikasi pengujian tanpa perlu mempelajari bahasa pemrograman. Pelajari lebih lanjut di halaman kami. Cucumber tutorial.
Apa itu Selenium?
Selenium adalah alat otomatisasi yang digunakan untuk Pengujian Fungsional aplikasi berbasis web. Selenium mendukung berbagai bahasa pemrograman termasuk Java, rubi, Python, dan C#, yang menjadikannya pilihan tepat untuk tim dengan latar belakang teknis yang beragam. Pelajari lebih lanjut di halaman kami. Selenium tutorial.
Mengapa Menggunakan Cucumber dengan Selenium?
Cucumber ke Selenium adalah dua teknologi pengujian yang paling banyak diadopsi. Sebagian besar organisasi sudah menggunakannya. Selenium untuk pengujian fungsional dan ingin membuat lapisan Cucumber di atas karena Cucumber Memudahkan pembacaan dan pemahaman alur aplikasi..
Cucumber didasarkan pada kerangka kerja Behavior Driven Development yang bertindak sebagai jembatan antara peran-peran berikut:
- Insinyur Perangkat Lunak dan Analis Bisnis.
- Penguji Manual dan Penguji Otomatisasi.
- Penguji dan Pengembang Manual.
The Cucumber Kerangka BDD juga Membantu klien memahami kode aplikasi. Karena menggunakan bahasa Gherkin, yang berupa teks biasa. Siapa pun di organisasi dapat mengikuti perilaku perangkat lunak tersebut. Sintaks Gherkin menggunakan bahasa Inggris sederhana yang mudah dibaca, sehingga spesifikasi tetap mudah diakses oleh pembaca non-teknis.
Persyaratan untuk Menggunakan Cucumber dengan Selenium
Sebelum kita memulai Cucumber-Selenium Untuk melakukan integrasi, Anda memerlukan item-item berikut:
Selenium file jar:
- Selenium-server-mandiri
Anda dapat mengunduhnya di https://www.selenium.dev/downloads/.
File JAR untuk Cucumber:
- Cucumber-inti
- Cucumber-html
- Cobertura cakupan kode
- Cucumber-Jawa
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-pelaporan
- Inti Hamcrest
- Ketimun
- JUnit
Anda dapat mengunduhnya di https://mvnrepository.com/search?q=CucumberAnda perlu mencari setiap file JAR dan mengunduhnya satu per satu.
Sebagai contoh, berikut cara mengunduh salah satu file jar, yaitu โCucumber-pustaka "inti".
Klik tautan unduhan di atas. Tautan tersebut akan mengarahkan Anda ke situs Maven Repository. Sekarang, cari file jar tertentu (dalam hal ini โCucumber Intiโ) seperti yang ditunjukkan pada tangkapan layar di bawah ini:
Di halaman berikutnya, klik versi 1.2.2:
Di layar berikutnya, klik Unduh untuk mendapatkan file tersebut. Cucumber File jar inti:
Catatan: Untuk memudahkan, kami telah menyertakan file jar Maven yang dibutuhkan. di siniFile-file JAR ini mungkin menjadi usang dan tidak kompatibel seiring waktu, jadi kami sarankan Anda mengunduhnya sendiri menggunakan metode yang dijelaskan di atas.
Pengujian Otomasi Menggunakan Cucumber dengan Selenium
Mari kita bahas cara menggunakannya. Cucumber dengan Selenium Selangkah demi selangkah. Di sini kita akan membahas tiga skenario:
- Skenario 1: Cetak teks di konsol.
- Skenario 2: Masukkan kredensial login dan atur ulang nilainya.
- Skenario 3: Masukkan kredensial login pada Guru99 dan atur ulang nilainya โ diulangi untuk 3 set data.
Skenario 1: Mencetak Teks di Konsol
Dalam skenario ini, kita cukup mencetak teks di konsol menggunakan Cucumber.
Langkah 1) Buat proyek di Eclipse.
Membuat Java proyek dengan nama "CucumberDenganSelenium" seperti yang ditunjukkan pada gambar di bawah.
Langkah 2) Tambahkan file jar ke proyek.
Klik kanan proyek > Properti > Java Build Path. Tambahkan semua library yang telah Anda unduh sebelumnya.
Langkah 3) Buat berkas fitur.
Untuk membuat berkas fitur, pertama-tama buat folder Fitur seperti yang ditunjukkan pada tangkapan layar di bawah ini.
Masukkan nama folder โFiturโ dan klik Selesai.
Sekarang buatlah berkas fitur di dalam folder Features dengan nama Fitur Tes SayaProsesnya mirip dengan membuat folder.
Catatan: Anda mungkin perlu menginstal Cucumber Eclipse Pasang plugin terlebih dahulu. Buka Bantuan โ Instal Perangkat Lunak Baru, lalu tempel tautannya. http://cucumber.github.io/cucumber-eclipse/update-site/, dan pasang.
Langkah 4) Tuliskan skenarionya.
Baris-baris di bawah ini ditulis dalam Fitur Tes Saya menggunakan bahasa Gherkin:
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 Penjelasan
Baris 1) Menentukan fungsi bisnis.
Baris 2) Menentukan skenario yang akan diuji.
Baris 3) Mendefinisikan prasyarat (Diberikan).
Baris 4) Menentukan tindakan yang akan dilakukan (Kapan).
Baris 5) Menentukan hasil atau konsekuensi yang diharapkan (Kemudian).
Langkah 5) Tulis Selenium Skrip TestRunner untuk Cucumber desain kerangka kerja.
Membuat Pelari Uji paket dan kemudian sebuah Pelari.java berkas kelas 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, kita menjalankan tes mentimun dengan menggunakan anotasi berikut:
@JalankanDengan() mengatakan JUnit tentang kelas test runner yang memulai eksekusi pengujian kita.
@CucumberOpsi() Mengatur properti pengujian seperti jalur file fitur dan paket penghubung definisi langkah.
Tangkapan layar file TestRunner:
Langkah 6) Buat skrip Definisi Langkah.
Sekarang buat a Definisi Langkah paket dan kemudian sebuah Langkah-langkah.java file skrip di bawahnya. Di dalam Steps.java kita menulis Selenium logika yang dipetakan ke setiap langkah Gherkin.
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.");
}
}
Kelas tersebut bernama Tangga, dan Cucumber Anotasi memetakan setiap metode ke langkah file fitur:
@Diberikan mendefinisikan metode untuk membuka Firefox lalu jalankan aplikasinya.
@Kapan Menentukan metode untuk memasukkan nama pengguna dan kata sandi.
@Kemudian mendefinisikan metode untuk mengatur ulang kredensial.
Setiap metode hanya mencetak pesan ke konsol.
Tangkapan layar di bawah ini menunjukkan skrip Steps.java dan struktur proyek:
Catatan: Definisi langkah adalah kode yang Anda inginkan. Cucumber untuk dieksekusi ketika cocok dengan langkah file fitur.
Langkah 7) Jalankan skripnya.
Jalankan skrip ini dari file TestRunner (Runner.java) seperti yang ditunjukkan di bawah ini.
Langkah 8) Analisis hasilnya.
Saat menjalankan Runner.java, Cucumber Mencetak teks yang sama seperti yang didefinisikan dalam Steps.java ke konsol.
Skenario 2: Masukkan Kredensial Login dan Atur Ulang Nilai
Di sini kita memasukkan kredensial pada GuruHalaman login demo 99 dan atur ulang nilainya.
Untuk Skenario 2, kita hanya perlu memperbarui Langkah-langkah.javaDi sini kita menambahkan yang sebenarnya Selenium kode. Pertama, pastikan Selenium File JAR telah ditambahkan ke proyek.
Langkah 1) Perbarui skrip Steps.java seperti yang 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("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 dari gambar di atas Selenium naskah:
Langkah 2) Jalankan skripnya.
Setelah memperbarui Steps.java, jalankan Runner.java.
Langkah 3) Analisis hasilnya. Pada hasil keluaran, Anda akan melihat hal berikut:
- Peramban diluncurkan.
- GuruSitus demo 99 bank dibuka.
- Nama pengguna dan kata sandi dimasukkan pada halaman login.
- Tombol Reset menghapus nilai-nilai tersebut.
Skenario 3: Jalankan Alur Login dan Reset dengan 3 Set Data
Di sini kita perlu memperbarui keduanya. Langkah-langkah.java dan file fitur untuk menjalankan alur yang sama dengan tiga set kredensial.
Langkah 1) Perbarui file fitur seperti yang ditunjukkan di bawah ini.
Kami menggunakan Garis Besar Skenario ke contoh sintaksis jadi Cucumber mengulang skenario yang sama di setiap baris data.
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 |
Langkah 2) Perbarui skrip Steps.java.
Di sini kita memperbarui tanda tangan metode agar dapat menerima parameter dari tabel Contoh.
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();
}
}
Langkah 3) Jalankan skrip yang telah diperbarui.
Layar di bawah ini menunjukkan eksekusi yang berhasil dan waktu yang dibutuhkan oleh setiap kumpulan data.
Langkah 4) Analisis hasilnya. Langkah-langkah berikut diulangi untuk setiap dari 3 set data:
- Peramban diluncurkan.
- GuruSitus demo 99 bank dibuka.
- Nama pengguna dan kata sandi dimasukkan pada halaman login.
- Tombol Reset menghapus nilai-nilai tersebut.























