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:
- Insinyur Perangkat Lunak dan Analis Bisnis.
- Penguji Manual dan Penguji Otomatisasi.
- 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.
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/
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:
Di halaman berikutnya, Klik versi 1.2.2,
Di layar berikutnya, klik unduh untuk mendapatkan 'Cucumber File jar inti.
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.
Langkah 2) Menambahkan file Jar di proyek.
Klik kanan pada Proyek > Pilih Properti > Pergi ke Java Bangun Jalur. Tambahkan semua perpustakaan yang diunduh sebelumnya.
Langkah 3) Membuat file fitur
Untuk membuat file fitur, pertama-tama buat folder fitur seperti gambar di bawah ini.
Sekarang Masukkan nama Folder 'Fitur' dan klik Tombol 'Selesai'.
Sekarang, buat file fitur di folder 'Fitur' dengan nama “MyTest.feature” – Prosesnya mirip dengan membuat folder
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.
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.
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.
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'.
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.
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.
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.
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.
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(); } }
Langkah 3) Sekarang jalankan skrip yang diperbarui.
Layar di bawah ini menunjukkan keberhasilan eksekusi skrip dan waktu yang dibutuhkan oleh setiap kumpulan data.
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.
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
- Buat file fitur yang menentukan fitur dan skenario langkah demi langkah menggunakan bahasa Gherkin.
- Buat file Testrunner. Dalam file ini, kami terintegrasi Cucumber dengan kerangka BDD di Selenium. Kami menjalankan skrip ini.
- Definisi Creat Step, skrip selenium sebenarnya yang didefinisikan dalam paket ini.