Mentimun - Panduan Cepat

Untuk mendapatkan keuntungan yang lebih baik dari pengujian perangkat lunak, organisasi saat ini mengambil langkah maju. Mereka menerapkan skenario uji penerimaan penting saat pengembangan sedang berlangsung. Pendekatan ini biasa dikenal sebagaiBehavior Driven Development (BDD).

Behavior Driven Development memberi kami kesempatan untuk membuat skrip uji dari perspektif pengembang dan pelanggan juga. Jadi pada awalnya, pengembang, manajer proyek, QA, penguji penerimaan pengguna, dan pemilik produk (pemegang saham), semua berkumpul dan bertukar pikiran tentang skenario pengujian mana yang harus dilalui agar perangkat lunak / aplikasi ini berhasil. Dengan cara ini, mereka menghasilkan serangkaian skenario pengujian. Semua skrip tes ini dalam bahasa Inggris yang sederhana, jadi ini juga berfungsi sebagai dokumentasi.

Contoh

Jika kita sedang mengembangkan fitur otentikasi pengguna, maka berikut ini beberapa skenario pengujian utama, yang harus diteruskan untuk menyebutnya sukses.

  • Pengguna harus dapat masuk dengan nama pengguna dan kata sandi yang benar.

  • Pengguna seharusnya tidak dapat masuk dengan nama pengguna yang salah dan kata sandi yang benar.

  • Pengguna seharusnya tidak dapat masuk dengan nama pengguna yang benar dan kata sandi yang salah.

Bagaimana itu bekerja

Pada saat kode siap, skrip pengujian juga sudah siap. Kode harus lulus skrip uji yang ditentukan dalam BDD. Jika tidak terjadi, refactoring kode akan dibutuhkan. Kode akan dibekukan hanya setelah eksekusi skrip pengujian yang ditentukan berhasil.

Ini adalah gagasan yang sangat sederhana, tetapi apa yang kita butuhkan untuk menerapkan konsep ini. Jawabannya adalah, Framework Behavior Driven Development (BDD). Mentimun adalah salah satu alat open source, yang mendukung pengembangan berbasis perilaku. Lebih tepatnya, Mentimun dapat didefinisikan sebagai kerangka kerja pengujian, didorong oleh teks bahasa Inggris biasa. Ini berfungsi sebagai dokumentasi, tes otomatis, dan bantuan pengembangan - semuanya dalam satu.

Jadi apa yang dilakukan Mentimun? Itu dapat dijelaskan dalam langkah-langkah berikut -

Mentimun membaca kode yang ditulis dalam teks bahasa Inggris biasa (Bahasa Gherkin - akan diperkenalkan nanti dalam tutorial ini) di file fitur (akan diperkenalkan nanti).

Ia menemukan kecocokan persis dari setiap langkah dalam definisi langkah (file kode - detail yang diberikan nanti di tutorial).

Potongan kode yang akan dieksekusi dapat berupa kerangka kerja perangkat lunak yang berbeda Selenium, Ruby on Rails, dll. Tidak semua alat kerangka kerja BDD mendukung setiap alat.

Ini telah menjadi alasan popularitas Ketimun dibandingkan kerangka lain, seperti JBehave, JDave, Easyb, dll.

Mentimun mendukung lebih dari selusin platform perangkat lunak yang berbeda seperti -

  • Ruby on Rails
  • Selenium
  • PicoContainer
  • Kerangka Musim Semi
  • Watir

Keunggulan Mentimun Dibandingkan Alat Lainnya

  • Mentimun mendukung berbagai bahasa seperti Java.net dan Ruby.

  • Ini bertindak sebagai jembatan antara bisnis dan bahasa teknis. Kita dapat melakukannya dengan membuat kasus uji dalam teks bahasa Inggris biasa.

  • Ini memungkinkan skrip uji untuk ditulis tanpa pengetahuan tentang kode apa pun, ini memungkinkan keterlibatan non-pemrogram juga.

  • Ini melayani tujuan kerangka pengujian ujung-ke-ujung tidak seperti alat lainnya.

  • Karena arsitektur skrip pengujian sederhana, Mentimun menyediakan kode yang dapat digunakan kembali.

Dalam bab ini, kita akan melihat pengaturan lingkungan untuk Ketimun dengan Selenium WebDriver dan Java, di Windows Machine.

Prasyarat untuk Pengaturan Lingkungan

Berikut adalah prasyarat yang diperlukan untuk menyiapkan -

Jawa

Why we need- Java adalah bahasa pemrograman yang kuat. Mentimun mendukung platform Java untuk eksekusi.

How to install -

Step 1 - Unduh jdk dan jre dari tautan berikut http://www.oracle.com/technetwork/java/javase/downloads/index.html

Step 2 - Terima perjanjian lisensi.

Step 3 - Instal JDK dan JRE.

Step 4 - Atur variabel lingkungan seperti yang ditunjukkan pada tangkapan layar berikut.

Gerhana

Why we need- Eclipse adalah Integrated Development Environment (IDE). Ini berisi ruang kerja dasar dan sistem plug-in yang dapat diperluas untuk menyesuaikan lingkungan.

How to install -

Step 1 - Pastikan JAVA diinstal pada mesin Anda.

Step 2 - Unduh Eclipse dari https://eclipse.org/downloads/

Step 3 - Unzip dan Eclipse diinstal.

Maven

Why we need- Maven adalah alat otomatisasi pembuatan yang digunakan terutama untuk proyek Java. Ini menyediakan platform umum untuk melakukan aktivitas seperti membuat kode sumber, mengompilasi kode, memaketkan kode ke jar, dll. Nanti jika ada versi perangkat lunak yang diubah, Maven menyediakan cara mudah untuk memodifikasi proyek uji yang sesuai.

How to install -

Step 1 - Unduh Maven dari tautan berikut - https://maven.apache.org/download.cgi

Step 2 - Buka zip file dan ingat lokasinya.

Step 3 - Buat variabel lingkungan MAVEN_HOME seperti yang ditunjukkan pada tangkapan layar berikut.

Step 4 - Edit variabel Path dan sertakan Maven seperti yang ditunjukkan pada gambar layar berikut.

Step 5 - Unduh plugin MAVEN dari Eclipse.

Step 6 - Buka Eclipse.

Step 7 - Buka Bantuan → Eclipse Marketplace → Cari Maven → Integrasi Maven untuk Eclipse → INSTALL.

Konfigurasi Mentimun dengan Maven

Step 1 - Buat proyek Maven.

  • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

  • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Berikan Id artefak (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa saja, yang menggunakan huruf kecil). Klik Selesai.

Step 2 - Buka pom.xml.

  • Pergi ke penjelajah paket di sisi kiri Eclipse.

  • Perluas proyek CucumberTest.

  • Menemukan pom.xml mengajukan.

  • Klik kanan dan pilih opsi, buka dengan "Editor Teks".

Step 3 - Tambahkan ketergantungan untuk selenium: Ini akan menunjukkan Maven file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

  • Di dalam tag dependency, buat tag dependency (<dependency> </dependency>).

  • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>

Step 4 - Tambahkan ketergantungan untuk Mentimun-Java: Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buat satu tag ketergantungan lagi.

  • Berikan informasi berikut dalam tag ketergantungan

<dependency> 
   <groupId>info.cukes</groupId>
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>

Step 5 - Tambahkan ketergantungan untuk Cucumber-JUnit: Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buat satu tag ketergantungan lagi.

  • Berikan informasi berikut dalam tag ketergantungan

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>

Step 6 - Tambahkan ketergantungan untuk JUnit: Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buat satu tag ketergantungan lagi.

  • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>

Step 7 - Verifikasi binari.

  • Sekali pom.xml berhasil diedit, simpan.

  • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

Anda akan dapat melihat repositori Maven seperti yang ditunjukkan pada gambar berikut.

  • Buat file fitur (untuk dibahas nanti).

  • Buat file definisi langkah (akan dibahas nanti).

  • Buat runner JUnit untuk menjalankan pengujian (akan dibahas nanti).

Sejauh ini, kami telah mendapatkan pemahaman tentang Ketimun dan apa fungsinya. Ini mengeksekusi skrip pengujian, yang telah ditentukan dalam file fitur (akan dibahas dalam bab-bab selanjutnya). Bahasa, di mana file fitur yang dapat dieksekusi ini ditulis, dikenal sebagaiGherkin. Gherkin adalah bahasa teks Inggris biasa, yang membantu alat - Timun untuk menafsirkan dan menjalankan skrip tes.

Orang mungkin berpikir bahwa, telah dibahas berkali-kali bahwa Ketimun mendukung teks bahasa Inggris sederhana lalu mengapa kita membutuhkan bahasa yang terpisah - Gherkins. Jawabannya terletak pada konsep Behavior Driven Development.

Seperti yang dibahas sebelumnya, kami telah melihat bahwa BDD menggabungkan prospek yang berbeda saat membuat skrip pengujian. Ini bisa menjadi calon pengembangan, calon bisnis, dll. Namun demikian, kita akan membutuhkan orang-orang dari komunitas yang berbeda seperti pengembang, manajer proyek, pemilik produk, dan penguji sambil mengembangkan skrip pengujian. Karena orang-orang ini tidak termasuk dalam kategori yang sama, ada risiko tidak menggunakan bahasa umum untuk pembuatan konsep skrip pengujian. Ini adalah titik evolusi Gherkins.

Gherkin menyediakan sekumpulan kata kunci umum dalam teks bahasa Inggris, yang dapat digunakan oleh orang-orang di antara komunitas yang berbeda namun mendapatkan hasil yang sama dalam bentuk skrip pengujian.

Contoh

Feature - Fungsionalitas login untuk situs jejaring sosial. Given Saya adalah pengguna situs jejaring sosial. When Saya memasukkan nama pengguna sebagai nama pengguna1. And Saya memasukkan kata sandi sebagai kata sandi1. Then Saya harus diarahkan ke beranda situs.

Skenario yang disebutkan di atas adalah fitur yang disebut login pengguna. Semua kata yang dicetak tebal adalah kata kunci Gherkin.

Contoh beberapa kata kunci lainnya -

  • Background
  • But
  • *
  • Skenario Outline
  • Examples

Gherkin akan mengurai setiap langkah yang ditulis dalam file definisi langkah (akan dibahas nanti). Jadi langkah-langkah yang disebutkan dalam file fitur dan file definisi langkah (yang akan dibahas nanti) harus cocok.

Anda dapat menemukan Gherkin jar di folder Maven Dependency di Package Explorer. Itu akan diunduh bersama dengan stoples Ketimun lainnya. Ini akan terlihat seperti tangkapan layar berikut -

Fakta menarik lainnya tentang Gherkin adalah, ia mendukung tidak hanya bahasa Inggris tetapi banyak bahasa asli lainnya seperti Prancis, Finlandia, Indonesia, Hongaria, Hindi, Urdu, Gujarati, dll.

SEBUAH Featuredapat didefinisikan sebagai unit atau fungsi mandiri dari suatu proyek. Mari kita ambil contoh yang sangat umum dari situs jejaring sosial. Seperti apa fitur produk / proyek ini? Beberapa fitur dasar dapat ditentukan sebagai -

  • Membuat dan menghapus pengguna dari situs jejaring sosial.

  • Fungsionalitas login pengguna untuk situs jejaring sosial.

  • Berbagi foto atau video di situs jejaring sosial.

  • Mengirim permintaan pertemanan.

  • Logout.

Sekarang, jelas bahwa, setiap fungsi independen dari produk yang diuji dapat disebut sebagai fitur ketika kita berbicara tentang Mentimun. Ini adalah praktik terbaik nanti saat Anda memulai pengujian, bahwa sebelum mendapatkan skrip pengujian, kami harus menentukan fitur yang akan diuji.

Sebuah fitur biasanya berisi daftar skenario yang akan diuji untuk fitur tersebut. File tempat kami menyimpan fitur, deskripsi tentang fitur, dan skenario yang akan diuji dikenal sebagaiFeature File. Kita akan melihat lebih banyak tentang file fitur di bab berikutnya.

Kata kunci untuk mewakili fitur yang sedang diuji di Gherkins adalah "Fitur". Praktik terbaik yang disarankan adalah, menulis deskripsi kecil tentang fitur di bawah judul fitur di file fitur. Ini akan memenuhi kebutuhan dokumentasi yang baik juga.

Contoh

Feature - Fungsionalitas login untuk situs jejaring sosial.

Pengguna harus dapat masuk ke situs jejaring sosial jika nama pengguna dan kata sandi benar.

Pengguna harus diperlihatkan pesan kesalahan jika nama pengguna dan kata sandi salah.

Pengguna harus dinavigasi ke halaman beranda, jika nama pengguna dan kata sandi benar.

File Fitur

File, di mana tes Ketimun ditulis, dikenal sebagai feature files. Sebaiknya ada file fitur terpisah, untuk setiap fitur yang diuji. Ekstensi dari file fitur harus ".feature".

Seseorang dapat membuat file fitur sebanyak yang dibutuhkan. Untuk memiliki struktur yang terorganisir, setiap fitur harus memiliki satu file fitur.

Sebagai Contoh -

Sr Tidak Fitur Fitur Nama file
1 Login Pengguna userLogin.feature
2 Bagikan Posting sharePost.feature
3 Buat Akun createAccount.feature
4 Hapus akun deleteAccount.feature

Konvensi penamaan yang akan digunakan untuk nama fitur, nama file fitur tergantung pada pilihan individu. Tidak ada aturan dasar di Ketimun tentang nama.

File fitur sederhana terdiri dari kata kunci / bagian berikut -

  • Feature - Nama fitur yang diuji.

  • Description (opsional) - Jelaskan tentang fitur yang diuji.

  • Scenario - Apa skenario pengujiannya.

  • Given - Prasyarat sebelum langkah pengujian dijalankan.

  • When - Kondisi khusus yang harus cocok untuk menjalankan langkah berikutnya.

  • Then - Apa yang akan terjadi jika kondisi yang disebutkan dalam WHEN terpenuhi.

Contoh

Feature - Login pengguna di situs jejaring sosial.

Pengguna harus dapat masuk ke situs jejaring sosial jika nama pengguna dan kata sandi benar.

Pengguna harus diperlihatkan pesan kesalahan ketika nama pengguna dan kata sandi salah.

Pengguna harus dinavigasi ke halaman beranda jika nama pengguna dan kata sandi benar.

Outline - Fungsionalitas login untuk situs jejaring sosial.

Pengguna tertentu menavigasi ke Facebook. Ketika saya memasukkan Nama Pengguna sebagai "<username>" dan Kata Sandi sebagai "<password>". Kemudian, login seharusnya tidak berhasil.

| username  | password  |
| username1 | password1 |

* AND kata kunci digunakan untuk menunjukkan hubungan antara dua kondisi. AND dapat digunakan dengan kata kunci lain seperti GIVEN, WHEN dan THEN.

Tidak ada detail logika yang tertulis di file fitur.

Definisi Langkah

Kami telah menyiapkan file fitur kami dengan skenario pengujian yang ditentukan. Namun, ini belum selesai. Mentimun tidak benar-benar tahu bagian kode mana yang akan dieksekusi untuk skenario tertentu yang diuraikan dalam file fitur.

Ini menyebut kebutuhan akan file Definisi Langkah menengah. File definisi langkah menyimpan pemetaan antara setiap langkah dari skenario yang ditentukan dalam file fitur dengan kode fungsi yang akan dijalankan.

Jadi, sekarang ketika Mentimun menjalankan langkah dari skenario yang disebutkan dalam file fitur, itu memindai file definisi langkah dan mencari tahu fungsi mana yang akan dipanggil.

Contoh File Definisi Langkah

public void goToFacebook() { 
   driver = new FirefoxDriver(); 
   driver.navigate().to("https://www.facebook.com/"); 
} 
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$" public void I_enter_Username_as_and_Password_as(String arg1, String arg2) { driver.findElement(By.id("email")).sendKeys(arg1); driver.findElement(By.id("pass")).sendKeys(arg2); driver.findElement(By.id("u_0_v")).click(); } @Then"^login should be unsuccessful$" 
public void validateRelogin() { 
   if(driver.getCurrentUrl().equalsIgnoreCase(
      "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
         System.out.println("Test Pass");
   } else { 
      System.out.println("Test Failed"); 
   } 
   driver.close(); 
}

Jadi dengan setiap fungsi, kode apa pun yang ingin Anda jalankan dengan setiap langkah pengujian (yaitu DIBERIKAN / KEMUDIAN / KAPAN), Anda dapat menulisnya dalam file Definisi Langkah. Pastikan bahwa kode / fungsi telah ditentukan untuk setiap langkah.

Fungsi ini dapat berupa fungsi Java, di mana kita dapat menggunakan perintah Java dan Selenium untuk mengotomatiskan langkah pengujian kita.

Scenarioadalah salah satu struktur inti Gherkin. Setiap skenario dimulai dengan kata kunci "Skenario:" (atau yang dilokalkan) dan diikuti dengan judul skenario opsional. Setiap fitur dapat memiliki satu atau lebih skenario dan setiap skenario terdiri dari satu atau beberapa langkah. Contoh skenario yang sangat sederhana adalah -

Scenario - Verifikasi Fungsi Bantuan.

Pengguna tertentu menavigasi ke Facebook.

Ketika pengguna mengklik Bantuan, maka halaman Bantuan terbuka.

Pertimbangkan sebuah kasus, di mana kita perlu menjalankan skenario pengujian lebih dari sekali. Misalkan, kita perlu memastikan bahwa fungsionalitas login berfungsi untuk semua jenis pemegang langganan. Itu membutuhkan eksekusi skenario fungsionalitas login beberapa kali. Salin tempel langkah yang sama untuk hanya menjalankan kembali kode, tampaknya bukan ide yang cerdas. Untuk ini, Gherkin memberikan satu struktur lagi, yaitu kerangka skenario.

Garis besar skenario mirip dengan struktur skenario; satu-satunya perbedaan adalah penyediaan beberapa masukan. Seperti yang Anda lihat pada contoh berikut, kasus pengujian tetap sama dan tidak dapat diulang. Di bagian bawah kami telah memberikan beberapa nilai input untuk variabel "Nama Pengguna" dan "Kata Sandi". Saat menjalankan tes yang sebenarnya, Mentimun akan mengganti variabel dengan nilai input yang diberikan dan itu akan menjalankan tes. Setelah pass-1 dijalankan, pengujian akan dijalankan kembali untuk iterasi kedua dengan nilai input lain. Variabel atau placeholder seperti itu dapat direpresentasikan dengan "<>" sambil menyebutkan dengan pernyataan gherkin.

Contoh

Scenario Outline- Fungsionalitas login untuk situs jejaring sosial. Pengguna tertentu menavigasi ke Facebook.

Ketika pengguna login menggunakan Nama Pengguna sebagai "<username>" dan Kata Sandi sebagai "<password>", maka login harus berhasil.

| username | password  | 
| user1    | password1 | 
| user2    | password2 |

Ada beberapa tip dan trik untuk mendefinisikan skenario Ketimun dengan cerdas.

  • Setiap langkah harus didefinisikan dengan jelas, sehingga tidak menimbulkan kebingungan bagi pembaca.

  • Jangan ulangi skenario pengujian, jika diperlukan gunakan kerangka skenario untuk mengimplementasikan pengulangan.

  • Kembangkan langkah pengujian sedemikian rupa, yang dapat digunakan dalam berbagai skenario dan kerangka skenario.

  • Sejauh mungkin, pertahankan setiap langkah sepenuhnya independen. Misalnya: "Mengingat pengguna sedang login". Ini dapat dibagi menjadi dua langkah

    • Mengingat pengguna memasukkan nama pengguna.
    • Klik saat masuk.

Annotationadalah teks yang telah ditentukan sebelumnya, yang memiliki arti tertentu. Ini memberi tahu kompiler / interpreter, apa yang harus dilakukan setelah eksekusi. Mentimun memiliki beberapa anotasi berikut -

  • Given -

    • Ini menjelaskan prasyarat untuk tes yang akan dijalankan.

    • Contoh - DIBERIKAN Saya adalah pengguna Facebook

  • When -

    • Ini menentukan titik pemicu untuk eksekusi skenario pengujian apa pun.

    • Contoh - SAAT saya memasukkan "<username>"

  • Then -

    • Kemudian tahan hasil yang diharapkan untuk pengujian yang akan dijalankan.

    • Contoh - MAKA login harus berhasil.

  • And -

    • Ini memberikan kondisi AND yang logis antara dua pernyataan apa pun. AND dapat digunakan bersama dengan pernyataan GIVEN, WHEN dan THEN.

    • Contoh - KETIKA saya memasukkan "<username>" DAN saya memasukkan "<password>"

  • But -

    • Ini menandakan kondisi OR logis antara dua pernyataan apa pun. ATAU dapat digunakan bersama dengan pernyataan GIVEN, WHEN dan THEN.

    • Contoh - MAKA login harus berhasil. TAPI beranda tidak boleh hilang.

  • Scenario -

    • Detail tentang skenario dalam pengujian harus diambil setelah kata kunci "Skenario:"

    • Contoh -

      Skenario:

      DIBERIKAN Saya adalah pengguna Facebook

      KETIKA saya memasukkan file

      DAN saya memasukkan saya

      MAKA login harus berhasil.

      TAPI beranda tidak boleh hilang.

  • Scenario Outline - (Akan dibahas nanti)

  • Examples - (Akan dibahas nanti)

  • Background -

    • Latar belakang umumnya memiliki instruksi tentang apa yang harus disiapkan sebelum setiap skenario dijalankan. Namun, itu dijalankan setelah hook "Sebelum" (akan dibahas nanti). Jadi ini ideal untuk digunakan sebagai kode ketika kita ingin mengatur web-browser atau kita ingin membuat konektivitas database.

      • Contoh -

        Latar Belakang:

        Buka beranda Facebook.

Contoh Skenario

Mari mengotomatiskan skenario untuk memahami anotasi dengan lebih baik.

Step 1

Buat Proyek Uji Maven dengan nama AnnotationTest.

  • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

  • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Berikan Id artefak (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

  • Klik Selesai.

  • Buka pom.xml −

    • Pergi ke penjelajah paket di sisi kiri Eclipse.

    • Perluas proyek AnnotationTest.

    • Temukan file pom.xml.

    • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

  • Tambahkan ketergantungan untuk Selenium - Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

    • Di dalam tag dependency, buat tag dependency (<dependency> </dependency>).

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Tambahkan ketergantungan untuk Ketimun-Java - Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan dependensi untuk Cucumber-JUnit - Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifikasi biner.

    • Setelah pom.xml berhasil diedit, simpan.

    • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

Step 2

Buat paket bernama Annotation under src/test/java

  • Pilih proyek yang baru dibuat.

  • Klik kanan dan pilih 'Baru'.

  • Pilih opsi sebagai 'Paket'.

  • Beri nama sebagai 'Annotation'.

  • Simpan itu.

Step 3

Buat file fitur bernama annotation.feature.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti outline.feature.

  • Tulis teks berikut di dalam file dan simpan.

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Step 4

Buat file definisi langkah.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file sebagai annotation.java

  • Tulis teks berikut di dalam file dan simpan.

package Annotation; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") public void goToFacebook() { driver = new FirefoxDriver(); driver.navigate().to("https://www.facebook.com/"); } @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }
	
   @When ("^I enter password as \"(.*)\"$") public void enterPassword(String arg1) { driver.findElement(By.id("pass")).sendKeys(arg1); driver.findElement(By.id("u_0_v")).click(); } @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   } 
	
   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
}

Step 5

Buat file kelas runner.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file, seperti runTest.java

  • Tulis teks berikut di dalam file dan simpan.

package Annotation; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
 
public class runTest { 
}

Step 6

Jalankan tes menggunakan opsi -

  • Pilih file runTest.java dari penjelajah paket.

  • Klik kanan dan pilih opsi ‘Run as’

  • Pilih uji JUnit.

Anda akan mengamati hal-hal berikut ketika Anda menjalankan file kelas ini -

  • Facebook terbuka di browser web Firefox baru.

  • TOM akan diteruskan sebagai masukan ke bidang nama pengguna.

  • JERRY akan diteruskan sebagai masukan ke bidang kata sandi.

  • Login akan diklik.

  • Pesan akan ditampilkan di browser tentang login yang tidak berhasil.

  • Di konsol, Anda akan melihat "Test Pass" tercetak

  • Hasil langkah 1. sampai 5. Akan dieksekusi ulang untuk username sebagai "" dan password sebagai "".

Scenario outlinepada dasarnya mengganti variabel / kata kunci dengan nilai dari tabel. Setiap baris dalam tabel dianggap sebagai skenario.

Mari lanjutkan dengan contoh fitur login Facebook yang sama. Sejauh ini kami telah menjalankan satu skenario: Setelah memberikan nama pengguna yang benar, login berhasil. Sekarang, misalkan kita ingin memeriksa apakah login berhasil untuk ketiga jenis masukan yang mungkin, yaitu nama pengguna, alamat email, atau nomor telepon. Untuk mencapai ini, kita perlu menulis tiga skenario berbeda, di mana setiap skenario akan berbeda dengan jenis input, login berhasil. Dalam kasus ini, skenario akan terlihat seperti berikut ini.

Scenario:

Pengguna tertentu menavigasi ke Facebook

Ketika saya memasukkan nama pengguna dan kata sandi yang benar

Maka login harus berhasil

Scenario:

Pengguna tertentu menavigasi ke Facebook

Ketika saya memasukkan alamat email dan kata sandi yang benar

Maka login harus berhasil

Scenario:

Pengguna tertentu menavigasi ke Facebook

Ketika saya memasukkan nomor telepon dan kata sandi yang benar

Maka login harus berhasil

Di sini, jika kita melihat lebih dekat, untuk tiga skenario di atas: pernyataan sama, hanya parameter input (nama pengguna / alamat email / nomor telepon) yang berubah. Di situlah pentingnya garis besar skenario menjadi gambaran.

Ketika kita mendefinisikan skenario apa pun dengan kerangka skenario, kita dapat menentukan satu skenario pengujian dan di bagian bawahnya kita dapat memberikan sejumlah masukan. Skenario akan dieksekusi sebanyak jumlah input yang diberikan.

Contoh

Mari buat contoh garis besar skenario -

Step 1 - Buat Proyek Uji Maven dengan nama ScenarioOutlineTest

  • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

  • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Berikan Id artefak (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

  • Klik Selesai.

  • Buka pom.xml -

    • Pergi ke penjelajah paket di sisi kiri Eclipse.

    • Perluas proyek CucumberTest.

    • Temukan file pom.xml.

    • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

  • Tambahkan ketergantungan untuk Selenium - Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

    • Di dalam tag dependency, buat tag dependency (<dependency> </dependency>).

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Tambahkan ketergantungan untuk Ketimun-Java: Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan dependensi untuk Cucumber-JUnit: Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifikasi biner.

    • Setelah pom.xml berhasil diedit, simpan.

    • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

Step 2 - Buat paket bernama "garis besar" di bawah src/test/java

Step 3 - Buat file fitur bernama “outline.feature”

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti “outline.feature”

    • Tulis teks berikut di dalam file dan simpan.

      Feature - Skenario Outline

      Scenario Outline - Fungsionalitas login untuk situs jejaring sosial.

      Pengguna tertentu menavigasi ke Facebook

      Ketika saya memasukkan Nama Pengguna sebagai "<username>" dan Kata Sandi sebagai "<password>"

      Maka login seharusnya tidak berhasil

Example -

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Di sini, contoh anotasi menjelaskan kisaran input yang akan diberikan pada eksekusi skenario. Skenario pengujian akan dijalankan untuk setiap masukan yang diberikan. Jadi, dalam contoh yang diberikan, skenario pengujian akan dijalankan tiga kali.

Step 4 - Buat file definisi langkah.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file sebagai stepdefinition.java

  • Tulis teks berikut di dalam file dan simpan.

package Outline;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class stepdefinition { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") 
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") public void I_enter_Username_as_and_Password_as(String arg1, String arg2) { driver.findElement(By.id("email")).sendKeys(arg1); driver.findElement(By.id("pass")).sendKeys(arg2); driver.findElement(By.id("u_0_v")).click(); } @Then("^login should be unsuccessful$") 
   public void validateRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
      "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
         System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   }    
}

Note- Pada kode di atas, kita harus mendefinisikan sebuah fungsi yang memiliki dua argumen masukan: satu nama pengguna dan lainnya untuk kata sandi. Jadi untuk setiap set input yang disediakan di tag contoh, Set GIVEN, WHEN dan THEN akan dieksekusi.

Step 5 - Buat file kelas runner.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti runTest.java

  • Tulis teks berikut di dalam file dan simpan.

package Outline; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})

public class runTest { }
  • Jalankan tes menggunakan opsi -

    • Pilih runTest.java file dari penjelajah paket.

    • Klik kanan dan pilih opsi ‘Run as’.

    • Pilih uji JUnit.

Anda akan mengamati hal-hal berikut saat menjalankan file kelas ini

  • Facebook terbuka di browser web Firefox baru.

  • Nama pengguna1 dan kata sandi1 akan dikirimkan sebagai masukan ke bidang nama pengguna dan kata sandi.

  • Login akan diklik.

  • Pesan akan ditampilkan di browser tentang login yang tidak berhasil.

  • Di konsol, Anda akan melihat "Test Pass" tercetak.

  • Hasil langkah 1 sampai 5 akan dieksekusi ulang untuk username2 dan password2.

Singkatnya, ketika skenario tidak berubah tetapi hanya nilai data yang berubah, disarankan untuk menggunakan tabel data kerangka skenario.

Ini terlihat sederhana ketika kita hanya memiliki satu, dua, atau mungkin lima skenario dalam file fitur. Namun, dalam kehidupan nyata hal itu tidak terjadi. Untuk setiap fitur yang diuji, kami mungkin memiliki 10, 20, atau mungkin lebih banyak skenario dalam satu file fitur. Mereka mungkin mewakili tujuan yang berbeda (Uji asap / uji Regresi), prospek yang berbeda (Pengembang / QA / BA), status yang berbeda (Siap untuk eksekusi / Pekerjaan dalam proses), dll. Bagaimana mengelola eksekusi untuk massa seperti itu?

Untuk ini, Mentimun telah menyediakan cara untuk mengatur eksekusi skenario Anda dengan menggunakan tag di file fitur. Kita dapat menentukan setiap skenario dengan tag yang berguna. Nanti, di file runner, kita dapat memutuskan tag spesifik mana (dan juga skenario) yang kita inginkan untuk dieksekusi oleh Cucumber. Tag dimulai dengan "@". Setelah "@" Anda dapat memiliki teks yang relevan untuk menentukan tag Anda. Mari kita pahami ini dengan sebuah contoh.

Misalkan, ada dua atau lebih skenario dalam file fitur. Kami hanya ingin menjalankan satu skenario sebagai bagian dari uji asap. Jadi, hal pertama adalah mengidentifikasi skenario itu dan yang kedua adalah menandainya dengan teks "@SmokeTest" di awal skenario. Mari kita lihat lebih dalam -

Step 1 - Buat proyek Maven dengan nama cucumberTag.

Step 2- Buat paket bernama cucumberTag dibawah src/test/java

Step 3- Buat file fitur bernama cucumberTag.feature.

Tulis teks berikut di dalam file dan simpan. File fitur ini berisi dua skenario di mana hanya satu yang telah ditandai sebagaiSmokeTest menandai.

Feature - Mentimun Tag

Scenario Outline - Fungsionalitas login untuk situs jejaring sosial.

Pengguna tertentu menavigasi ke Facebook

Ketika saya memasukkan Nama Pengguna sebagai "<username>" dan Kata Sandi sebagai "<password>"

Maka login seharusnya tidak berhasil

Contoh

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Skenario #following telah diberi tag sebagai SmokeTest dan ini harus dijalankan. @Tokopedia

Scenario:

Pengguna tertentu menavigasi ke Facebook

Ketika saya memasukkan Nama Pengguna sebagai "<>" dan Kata Sandi sebagai "<>"

Kemudian pengguna harus diarahkan untuk login lagi

Step 4 - Buat file definisi langkah.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti cucumberTag.java

  • Tulis teks berikut di dalam file dan simpan.

package cucumberTag;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberTag { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") public void goToFacebook() { driver = new FirefoxDriver(); driver.navigate().to("https://www.facebook.com/"); } @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") 
   public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
      driver.findElement(By.id("email")).sendKeys(arg1);
      driver.findElement(By.id("pass")).sendKeys(arg2);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^login should be unsuccessful$") public void validateRelogin() { if(driver.getCurrentUrl().equalsIgnoreCase( "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ System.out.println("Test Pass"); } else { System.out.println("Test Failed"); } driver.close(); } @Then("^User should be redirected to login retry$") 
   public void loginRetry() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
}

Step 5 - Buat file kelas runner.

  • Buat kelas pelari bernama runTest.java di dalam paket.

  • Tulis kode berikut.

  • Simpan file.

package cucumberTag; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

public class runTest { }
  • Jalankan opsi uji.

  • Klik kanan dan pilih opsi ‘Run as’.

  • Pilih uji JUnit.

Anda akan mengamati hal-hal berikut, ketika Anda menjalankan file kelas ini.

  • Facebook terbuka di browser web Firefox baru.

  • Tidak ada nilai yang akan diberikan ke bidang nama pengguna dan kata sandi.

  • Login akan diklik.

  • Halaman coba lagi login akan dimuat.

Tidak ada batasan dalam menentukan tag dalam file fitur. Berdasarkan kebutuhan Anda, Anda dapat memperoleh tag untuk digunakan dan skenario untuk dieksekusi.

Terutama ada dua jenis tag -

  • Default tag- Tag default memiliki arti yang telah ditentukan sebelumnya. Contoh @ Dev, @ Abaikan

  • Custom tag - Tag khusus memberi Anda fleksibilitas penuh untuk memilih teks yang sesuai untuk menentukan tag Anda.

Tag juga dapat ditentukan di tingkat fitur. Setelah Anda menentukan tag di tingkat fitur, ini memastikan bahwa semua skenario dalam file fitur tersebut mewarisi tag tersebut. Bergantung pada sifat skenario, kita dapat menggunakan lebih dari satu tag untuk satu fitur. Setiap kali Mentimun menemukan panggilan yang sesuai, skenario tertentu akan dijalankan.

Mentimun juga menyediakan cara untuk membalik pilihan tag. Pertimbangkan bahwa dari 25 skenario yang ditetapkan, 10 di antaranya ditandai sebagai uji asap. Kami hanya diminta untuk menjalankan skenario uji regresi.

Untuk ini, kita dapat menggunakan "~" di kelas runner JUnit untuk mengecualikan skenario pengujian asap. Ini akan terlihat seperti berikut.

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}, 
   tags = {"~@SmokeTest"})
	
public class runTest { }

Saat mendefinisikan banyak tag, kita juga dapat mendefinisikan logika atau / dan logika dan operasi.

  • Mendefinisikan logis atau di kelas pelari - @dev,@wip - Dikatakan bahwa skenario yang cocok dengan salah satu tag ini perlu dijalankan.

  • Mendefinisikan logis atau di kelas pelari - [@dev,~@wip] − Dikatakan bahwa skenario yang cocok dengan kedua tag ini perlu dijalankan.

Saat mengerjakan otomatisasi, kami mungkin menghadapi berbagai skenario. Setiap skenario memiliki arti dan kebutuhan yang berbeda.

Sejak awal, kami telah mengambil contoh fungsionalitas login untuk situs jejaring sosial, di mana kami hanya memiliki dua parameter input untuk diteruskan. Mari kita pikirkan kemungkinan lainnya. Bagaimana dengan fungsionalitas "Pendaftaran pengguna baru"? Biasanya, apa yang bisa menjadi parameter input saat mendaftarkan pengguna baru untuk situs jejaring sosial? Sesuatu seperti berikut -

  • Nama pengguna
  • Alamat email
  • Password
  • Masukkan Kembali password
  • Birthdate
  • Gender
  • Nomor telepon

Feature - Pendaftaran pengguna baru.

Verifikasi bahwa pendaftaran pengguna baru tidak berhasil setelah memberikan masukan yang salah.

Mengingat saya berada di halaman pendaftaran pengguna baru.

Ketika saya memasukkan nama pengguna dan alamat email sebagai alamat email dan kata sandi sebagai, dan memasukkan kembali kata sandi sebagai dan Tanggal lahir sebagai dan Jenis kelamin sebagai dan nomor telepon maka pendaftaran pengguna seharusnya tidak berhasil.

Sekilas terlihat agak berantakan. Jadi, adakah cara yang lebih baik untuk mengelola input seperti itu? Jawaban bisa berupa "Tabel Data". Tabel data adalah sekumpulan input yang akan disediakan untuk satu tag. Tag ini bisa DIBERIKAN, KAPAN, atau KEMUDIAN.

Mari tulis skenario di atas dengan bantuan tabel data dan akan terlihat seperti berikut -

Mengingat saya berada di halaman pendaftaran pengguna baru

Ketika saya memasukkan data yang valid di halaman

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

Maka pendaftaran pengguna harus berhasil.

Contoh

Mari mengotomatiskan contoh tabel data.

Step 1 - Buat Proyek Uji Maven bernama "DataTableTest".

  • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

  • Menyediakan group Id (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Menyediakan artifact Id (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

  • Klik Selesai.

  • Buka pom.xml -

    • Pergi ke penjelajah paket di sisi kiri Eclipse.

    • Perluas proyek CucumberTest.

    • Temukan file pom.xml.

    • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

  • Tambahkan ketergantungan untuk Selenium: Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

    • Di dalam tag dependensi, buat tag dependensi. (<dependency> </dependency>).

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Tambahkan ketergantungan untuk Ketimun-Java - Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan dependensi untuk Cucumber-JUnit - Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifikasi biner.

    • Setelah pom.xml berhasil diedit, simpan.

    • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

Step 2 - Buat paket bernama dataTable dibawah src/test/java

Step 3 - Buat file Fitur.

  • Buat file fitur, bernama dataTable.feature di dalam package dataTable (lihat garis besar skenario bagian untuk langkah-langkah yang lebih detail).

  • Tulis teks berikut.

    Feature - Tabel data

    Verifikasi bahwa pendaftaran pengguna baru tidak berhasil setelah memberikan masukan yang salah.

    Scenario:

    Mengingat saya berada di halaman pendaftaran pengguna baru

    Ketika saya memasukkan data yang tidak valid di halaman

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

Maka pendaftaran pengguna seharusnya tidak berhasil

  • Simpan file.

Step 4 - Buat file definisi langkah.

  • Buat file definisi langkah bernama 'dataTable.java' di dalam paket dataTable (lihat garis besar skenario bagian untuk langkah-langkah yang lebih detail).

  • Tulis kode berikut.

package dataTable; 

import java.util.List; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.Select;

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 
import cucumber.table.DataTable; 

public class stepdefinition { 
   WebDriver driver = null;
	
   @Given("^I am on new user registration page$") public void goToFacebook() { //Intiate web browser instance. driver = new FirefoxDriver(); driver.navigate().to("https://www.facebook.com/"); } @When("^I enter invalid data on the page$") 
   public void enterData(DataTable table){ 
      //Initialize data table 
      List<list> data = table.raw();
      System.out.println(data.get(1).get(1)); 
      
      //Enter data
      driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
      driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
      driver.findElement(By.name("reg_email__")).sendKeys(data.get(3).get(1));     
      driver.findElement(By.name("reg_email_confirmation__")).
         sendKeys(data.get(4).get(1)); 
      driver.findElement(By.name("reg_passwd__")).sendKeys(data.get(5).get(1)); 
      
      Select dropdownB = new Select(driver.findElement(By.name("birthday_day"))); 
      dropdownB.selectByValue("15"); 
		
      Select dropdownM = new Select(driver.findElement(By.name("birthday_month")));
      dropdownM.selectByValue("6"); 
		
      Select dropdownY = new Select(driver.findElement(By.name("birthday_year")));
      dropdownY.selectByValue("1990"); 
		
      driver.findElement(By.className("_58mt")).click(); 
      // Click submit button driver.findElement(By.name("websubmit")).click(); 
   } 
	
   @Then("^User registration should be unsuccessful$") 
   public void User_registration_should_be_unsuccessful() {
      if(driver.getCurrentUrl().equalsIgnoreCase("https://www.facebook.com/")){
         System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
}
  • Simpan file.

Step 5 - Buat file kelas runner.

  • Buat kelas runner bernama runTest.java di dalam paket.

  • Tulis kode berikut.

package dataTable; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
 
public class runTest { }
  • Simpan file.

  • Jalankan pengujian menggunakan opsi

    • Pilih file runTest.java dari penjelajah paket.

    • Klik kanan dan pilih opsi, Jalankan sebagai.

    • Pilih uji JUnit.

Anda dapat mengamati hal-hal berikut setelah eksekusi berhasil.

  • Situs web Facebook dimuat.

  • Data akan dimasukkan pada halaman registrasi.

  • Tombol kirim akan diklik.

  • Kita akan melihat bahwa halaman muka tidak akan ditampilkan dan "Test Pass" akan tertulis di konsol.

Commentpada dasarnya adalah sepotong kode yang dimaksudkan untuk tujuan dokumentasi dan bukan untuk eksekusi. Baik itu file definisi langkah atau file fitur, agar lebih mudah dibaca dan dipahami. Jadi, penting untuk menggunakan / memberi komentar di tempat yang sesuai di file. Ini juga membantu saat men-debug kode. File fitur mentimun dapat memiliki komentar di mana saja. Untuk memberi komentar, kita hanya perlu memulai pernyataan dengan tanda “#”.

Bahasa pemrograman yang berbeda memiliki norma yang berbeda untuk mendefinisikan komentar. Mari kita lihat bagaimana Mentimun mengatasinya.

  • File definisi langkah - Jika Anda menggunakan Java sebagai platform, tandai komentar Anda dengan "//".

  • File Fitur - Dalam hal file fitur, kami hanya perlu meletakkan # sebelum memulai komentar Anda.

Contoh

Teks yang disorot dalam program mengacu pada komentar di kode.

Feature: annotation 

#This is how background can be used to eliminate duplicate steps 
Background: 
User navigates to Facebook 
Given I am on Facebook login page 

#Scenario with AND 
Scenario: 
When I enter username as "TOM" 
And I enter password as "JERRY" 
Then Login should fail 

#Scenario with BUT 
Scenario: 
When I enter username as "TOM" 
And I enter password as "JERRY" 
Then Login should fail 
But Relogin option should be available

Timun hookmemungkinkan kami untuk mengelola alur kerja kode dengan lebih baik dan membantu kami mengurangi redundansi kode. Kami dapat mengatakan bahwa ini adalah langkah yang tidak terlihat, yang memungkinkan kami untuk melakukan skenario atau pengujian kami.

Untuk memahami gagasan ini lebih baik, mari kita ambil contoh file fitur dan file definisi langkah.

Bagian yang disorot dalam pernyataan yang diberikan sebenarnya melakukan tugas menyiapkan webdriver dan mengakhiri sesi webdriver. Jadi, ini sebenarnya tidak relevan dengan esensi dari "Pernyataan yang diberikan", dan ini lebih seperti penyiapan untuk pengujian. Juga jika kita berpikir dengan prospek yang lebih luas, maka dalam kasus beberapa skenario untuk fitur ini, penyiapan dan pembersihan webdriver ini akan berjalan dengan setiap pernyataan yang diberikan. Secara logis, masuk akal jika penyiapan dan pembersihan dijalankan hanya sekali.

Jadi untuk menghadirkan pengoptimalan, pengait bisa dimanfaatkan. Lebih sering kita menggunakan dua jenis pengait: Pengait "Sebelum" dan Pengait "Setelah". Metode / fungsi / bagian kode, yang didefinisikan dalam kait Sebelum dan Setelah, selalu dijalankan, bahkan jika skenario berhasil atau gagal.

Seperti namanya, sebelum hook dieksekusi dengan baik sebelum skenario pengujian lainnya, dan setelah hook dieksekusi setelah menjalankan semua skenario.

Hooks didefinisikan dalam file definisi langkah saja.

Mari mengotomatiskan contoh sebelum dan sesudah pengait.

Step 1 - Buat proyek Maven sebagai hookTest, tambahkan dependensi yang diperlukan di pom.xml.

Step 2 - Buat paket Java dengan nama hookTest di bawah src/test/java

Step 3 - Buat file definisi langkah dengan nama hookTest.java di bawah paket.

package hookTest; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class hookTest {
   WebDriver driver = null; 
	
   @Before public void setUp(){ 
      driver = new FirefoxDriver(); 
   } 
	
   @Given("^user navigates to facebook$") 
   public void goToFacebook() { 
      driver.navigate().to("https://www.facebook.com/");
   } 
	
   @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") public void I_enter_Username_as_and_Password_as(String arg1, String arg2) { driver.findElement(By.id("email")).sendKeys(arg1); driver.findElement(By.id("pass")).sendKeys(arg2); driver.findElement(By.id("u_0_v")).click(); } @Then("^login should be unsuccessful$") 
   public void validateRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
	
   @After public void cleanUp(){ 
      driver.close(); 
   } 
}

Step 4 - Buat file fitur bernama "hookTest.feature" di bawah paket.

Feature - Skenario Outline.

Scenario Outline - Uji Hook

Pengguna tertentu menavigasi ke Facebook

Ketika saya memasukkan Nama Pengguna sebagai "<username>" dan Kata Sandi sebagai "<password>"

Maka login seharusnya tidak berhasil

Contoh

| username  | password  | 
| username1 | password1 |

Step 5 - Buat file kelas runner.

  • Buat kelas runner sebagai runTest.java di dalam paket dataTable (lihat garis besar skenario bagian untuk langkah-langkah yang lebih detail).

  • Tulis kode berikut.

package hookTest; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})  

public class runTest { }
  • Simpan file.

  • Jalankan tes menggunakan opsi -

    • Pilih file runTest.java dari penjelajah paket.

    • Klik kanan dan pilih opsi, Jalankan sebagai.

    • Pilih uji JUnit.

Jadi sekarang ketika kita menjalankan ini, berikut akan menjadi urutan eksekusi.

  • Sebelum pengait - Siapkan webdriver dan prasyarat lainnya untuk menjalankan pengujian.

  • Pernyataan yang diberikan

  • Saat pernyataan

  • Kemudian pernyataan

  • After hook - Tutup webdriver dan lakukan proses pembersihan.

Tagged Hooks

Kita juga dapat menunjukkan jika kita ingin sebelum dan sesudah hook dijalankan dengan tag tertentu saja. Example- @Before ('@ Web'). Konsep tag yang logis dan / atau dapat diterapkan dengan kait juga.Example - @Before (@ dev, @ wip), @Before (@ dev, ~ @ wip)

Mentimun dapat digunakan untuk menguji hampir semua sistem komputer. Sejauh ini kami telah melihat cara menjalankan pengujian menggunakan Eclipse IDE. Ada satu cara lagi untuk menjalankan tes Ketimun yaitu melalui antarmuka baris perintah. Jadi apa untungnya melakukannya?

Menjalankan kerangka kerja pengujian apa pun dari Terminal memiliki keuntungannya sendiri, seperti mengganti konfigurasi proses yang disebutkan dalam kode.

Untuk menjalankan tes Cucumber dengan command prompt, gunakan langkah-langkah berikut setelah konfigurasi sistem.

Step 1- Buat Proyek Uji Maven bernama commandLine.

  • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

  • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Berikan Id artefak (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

  • Klik Selesai.

  • Buka pom.xml -

    • Pergi ke penjelajah paket di sisi kiri Eclipse.

    • Perluas proyek CucumberTest.

    • Menemukan pom.xml mengajukan.

    • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

  • Tambahkan ketergantungan untuk Selenium - Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

    • Di dalam tag dependensi, buat tag dependensi. (<dependency> </dependency>).

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Tambahkan ketergantungan untuk Ketimun-Java - Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan dependensi untuk Cucumber-JUnit - Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifikasi biner.

    • Setelah pom.xml berhasil diedit, simpan.

    • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

Step 2 - Buat paket bernama "outline" di bawah src / test / java

Step 3 - Buat file fitur bernama "commandLine.feature".

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti "commandLine.feature"

  • Tulis teks di bawah ini di dalam file dan simpan.

    Feature - Skenario Outline

    Scenario Outline - Fungsionalitas login untuk situs jejaring sosial.

    Mengingat pengguna menavigasi ke Facebook

    Ketika saya memasukkan Nama Pengguna sebagai "<username>" dan Kata Sandi sebagai "<password>"

    Maka login seharusnya tidak berhasil

Contoh

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Di sini, contoh anotasi menjelaskan kisaran input yang akan diberikan pada eksekusi skenario. Skenario pengujian akan dijalankan untuk setiap masukan yang diberikan. Jadi, dalam contoh yang diberikan, skenario pengujian akan dijalankan tiga kali.

Step 4 - Buat file definisi langkah.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file sebagai commandLine.java

  • Tulis teks berikut di dalam file dan simpan.

package Outline; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; i
import cucumber.annotation.en.When; 

public class stepdefinition { 
   WebDriver driver = null;
	
   @Given("^user navigates to facebook$") public void goToFacebook() { driver = new FirefoxDriver(); driver.navigate().to("https://www.facebook.com/"); } @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") 
   public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
      driver.findElement(By.id("email")).sendKeys(arg1);
      driver.findElement(By.id("pass")).sendKeys(arg2);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^login should be unsuccessful$") 
   public void validateRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
}

Note- Dalam kode, kita harus mendefinisikan sebuah fungsi yang memiliki dua argumen input: satu nama pengguna dan lainnya untuk kata sandi. Jadi, untuk setiap set input yang disediakan di tag contoh, set GIVEN, WHEN dan THEN akan dieksekusi.

Step 5 - Buat file kelas runner.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti, runTest.java

  • Tulis teks berikut di dalam file dan simpan.

package Outline; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

public class runTest { }
  • Buka prompt perintah.

  • Pergi ke direktori dimana paket "commandLine" ini berada. e: \ Workspace \ LoginTest \ src> cd test \ java

  • Jalankan perintah mvn test: Anda akan melihat bahwa semua skenario, yang dijelaskan dalam file fitur telah dijalankan (jika tidak ada kesalahan). Akhirnya, di bagian bawah Anda akan menemukan informasi berikut.

Hasil

This describes the total test run, along with failure if any.

Perintah sebelumnya menjalankan semua yang disebutkan di kelas JUnit Runner. Namun, jika kita ingin mengganti konfigurasi yang disebutkan di Runner, berikut adalah beberapa contoh untuk melakukannya.

  • Sekarang jalankan perintah mvn test - Dcucumber.options = "- help" pada command prompt. Menjalankan ini akan mencetak semua opsi yang tersedia.

  • Untuk menjalankan tag tertentu saja, jalankan perintah mvn test -Dcucumber.options = "- tags @SmokeTest" pada command prompt. Ini hanya akan menjalankan tag, yang ditandai dengan @SmokeTest.

  • Untuk mengubah format hasil, jalankan perintah E: \ Workspace \ LoginTest> mvn test -Dcucumber.options = "- plugin junit: target / cucumber-junit-report.xml" pada command prompt Ini mengubah laporan format ke pembuat laporan JUnit.

Penting untuk memahami apa itu Junit, sebelum kita memulai diskusi tentang Cucumber JUnit Runner. JUnitadalah kerangka pengujian unit open source untuk bahasa pemrograman Java. JUnit berperan penting dalam pengembangan pengembangan yang digerakkan oleh pengujian, dan merupakan salah satu keluarga kerangka pengujian unit, yang secara kolektif dikenal sebagai xUnit yang berasal dari SUnit.

Manfaat Menggunakan JUnit

  • Unit memiliki a Graphical User Interface (GUI), sehingga memungkinkan untuk menulis dan menguji kode sumber dengan cepat dan mudah.

  • JUnit memungkinkan pengembang untuk secara bertahap membangun rangkaian pengujian untuk mengukur kemajuan dan mendeteksi efek samping yang tidak diinginkan.

  • Tes bisa dijalankan terus menerus.

  • JUnit menunjukkan kemajuan pengujian dalam bilah yang biasanya berwarna hijau tetapi berubah menjadi merah saat pengujian gagal.

Sekarang, kami telah melihat manfaat menggunakan JUnit, tetapi alasan kami membahasnya sekarang adalah kerangka kerja Timun. Di satu sisi, Ketimun menyediakan cara bagi orang non-teknis untuk menentukan kasus uji untuk suatu produk, dan di sisi lain, harapan kami adalah untuk pelaksanaan kasus uji tersebut dengan lancar dan tepat waktu.

JUnit bertindak sebagai jembatan antara keduanya. Jadi, alur eksekusi akan terlihat seperti berikut -

  • Stakeholder menuliskan file fitur.

  • File definisi langkah akan dibuat sesuai.

  • Tentukan kelas runner JUnit untuk menjalankan rangkaian kasus pengujian.

  • Setelah kami menjalankan kelas pelari JUnit -

    • Ini akan mengurai file fitur Gherkin.

    • Ini akan menjalankan fungsi yang ditulis dalam file definisi langkah menurut pernyataan file fitur.

    • JUnit akan menggabungkan hasil kasus uji.

    • Ini akan membuat laporan pengujian dalam format yang ditentukan (yang dapat berupa html / JSON).

Poin penting di sini adalah bagaimana mengkonfigurasi JUnit untuk melakukan semua hal ini? Berikut langkah-langkahnya -

Step 1 - Instal Java.

  • Unduh jdk dan jre dari tautan http://www.oracle.com/technetwork/java/javase/downloads/index.html

  • Terima perjanjian lisensi.

  • Instal JDK dan JRE.

  • Tetapkan variabel lingkungan seperti yang ditunjukkan pada tangkapan layar berikut.

Step 2 - Pasang Eclipse.

  • Why we need- Eclipse adalah Integrated Development Environment (IDE). Ini berisi ruang kerja dasar dan sistem plug-in yang dapat diperluas untuk menyesuaikan lingkungan.

  • How to install -

    • Pastikan JAVA diinstal pada mesin Anda.

    • Unduh Eclipse dari http://www.eclipse.org/downloads

    • Unzip dan Eclipse diinstal.

Step 3 - Pasang Maven.

  • Why we need- Maven adalah alat otomatisasi pembuatan yang digunakan terutama untuk proyek Java. Ini menyediakan platform umum untuk melakukan aktivitas seperti membuat kode sumber, mengkompilasi kode, memaketkan kode ke jar, dll. Juga nanti jika ada versi perangkat lunak yang diubah, Maven menyediakan cara mudah untuk memodifikasi proyek uji yang sesuai.

  • How to install -

    • Unduh Maven - https://maven.apache.org/download.cgi

    • Buka zip file dan ingat lokasinya.

    • Buat variabel lingkungan MAVEN_HOME seperti yang ditunjukkan pada tangkapan layar berikut.

  • Edit variabel Path dan sertakan Maven seperti yang ditunjukkan pada gambar berikut.

  • Unduh plugin MAVEN dari Eclipse.

    • Buka Eclipse.

    • Got to Help → Eclipse Marketplace → Search maven → Maven Integration for Eclipse → INSTALL.

Step 4 - Cara mengkonfigurasi Mentimun dengan Maven

  • Buat proyek Maven di Eclipse.

    • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

    • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

    • Berikan Id artefak (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

    • Klik Selesai.

  • Buka pom.xml

    • Pergi ke penjelajah paket di sisi kiri Eclipse.

    • Perluas proyek CucumberTest.

    • Temukan file pom.xml.

    • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

  • Tambahkan ketergantungan untuk Selenium - Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

    • Di dalam tag dependensi, buat tag dependensi. (<dependency> </dependency>).

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Tambahkan ketergantungan untuk Ketimun-Java - Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan dependensi untuk Cucumber-JUnit: Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifikasi biner

    • Sekali pom.xml berhasil diedit, simpan.

    • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

    • Setelah itu Anda akan dapat melihat repositori Maven seperti gambar berikut.

Step 5 - Buat file fitur (akan dibahas nanti).

Step 6 - Buat file definisi langkah (akan dibahas nanti).

Step 7 - Buat pelari Junit untuk menjalankan tes (akan dibahas nanti).

Kami melakukan eksekusi uji untuk memahami kestabilan suatu produk, baik itu uji manual maupun uji otomatis, sangat penting untuk menghasilkan laporan ringkas yang dapat menggambarkan kestabilan suatu produk. Oleh karena itu, saat kami mengotomatiskan skenario pengujian kami dengan Ketimun, penting untuk mengetahui, seberapa baik kami dapat membuat laporan pengujian Ketimun kami. Seperti yang kita ketahui bahwa Mentimun adalah kerangka kerja BDD, ia tidak memiliki mekanisme pelaporan yang mewah.

Untuk mencapai ini, kita perlu mengintegrasikan Ketimun dengan alat sumber terbuka lainnya seperti Ant / Junit. Di sini, kita akan mengambil contoh JUnit lebih jauh karena JUnit menyediakan dukungan untuk bahasa Java.

Mari kita lihat detail dari berbagai format laporan, yang tersedia dan mudah digunakan -

Pretty Format (Laporan HTML)

Pretty Format menghasilkan laporan pengujian Ketimun dalam format HTML, yaitu file HTML. Ini adalah format laporan yang paling mudah dibaca. Ini menghasilkan laporan dengan cara yang sama seperti itu adalah file fitur, jadi pelacakan juga menjadi mudah. Selain itu, Anda dapat menentukan lokasi tempat Anda ingin meletakkan laporan ini setelah eksekusi uji. Bisa jadi -

  • Local Directory - Kita dapat menentukan direktori target untuk laporan sebagai direktori lokal manapun dari mesin tempat pengujian akan dijalankan.

  • Server Directory- Juga kami memiliki ketentuan untuk menentukan direktori target sebagai direktori apa pun di server, yang dapat diakses publik. Ini biasanya membantu ketika kami ingin klien / pemangku kepentingan kami melihat hasil tes pada titik waktu tertentu.

Contoh

Mari mengotomatiskan contoh format cantik.

Step 1 - Buat proyek Maven bernama cucumberReport di Eclipse.

Step 2 - Buat paket bernama CucumberReport dibawah src/test/java

Step 3 - Buat file fitur bernama cucumberReport.feature

Tulis teks berikut di dalam file dan simpan.

Feature - Laporan Mentimun

#Ini untuk memeriksa hasil tes untuk kasus tes Lulus

Scenario: Fungsionalitas login ada

Mengingat saya sudah membuka browser

Saat saya membuka situs Facebook

Maka tombol Login harus ada

#Ini untuk memeriksa hasil tes untuk kasus tes yang Gagal

Scenario: Lupa kata sandi ada

Mengingat saya sudah membuka browser

Saat saya membuka situs Facebook

Maka tautan Lupa kata sandi harus ada

Note- Di sini skenario pertama akan berlalu, sedangkan skenario kedua akan gagal. Sehingga kita bisa menyaksikan bagaimana laporan lolos dan gagal terlihat.

Step 4 - Buat file definisi langkah.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file sebagai cucumberReport.java

  • Tulis teks berikut di dalam file dan simpan.

package CucumberReport; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberReport { 
   WebDriver driver = null;
	
   @Given("^I have open the browser$") 
   public void openBrowser() { 
      driver = new FirefoxDriver();
   } 
	
   @When("^I open Facebook website$") public void goToFacebook() { driver.navigate().to("https://www.facebook.com/"); } @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail");
      }
   } 
	
   @Then("^Forgot password link should exist$") 
   public void forgotPWD() { 
      if(driver.findElement(By.id("")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else {
         System.out.println("Test 1 Fail");
      } 
   } 
}

Step 5 - Buat file kelas runner.

  • Buat kelas pelari bernama runTest.java di dalam paket.

  • Tulis kode berikut. Simpan file.

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( 
   format = {"pretty", "html:target/Destination"} ) 
//Specifying pretty as a format option ensure that HTML report will be generated. 
//When we specify html:target/Destination - It will generate the HTML report 

inside the Destination folder, in the target folder of the maven project.
 
public class runTest { }
  • Jalankan pengujian menggunakan opsi

    • Pilih runTest.java file dari penjelajah paket.

    • Klik kanan dan pilih opsi, Run as.

    • Pilih uji JUnit.

Anda akan mengamati hal-hal berikut saat menjalankan file kelas ini.

Kedua skenario tersebut akan dieksekusi satu per satu.

Folder bernama Tujuan akan dibuat di dalam direktori target.

Laporan itu akan ada di sana bernama "Index.html".

Buka Index.html dengan browser web.

Anda akan melihat laporan yang disebutkan pada gambar berikut -

Ini persis menyoroti warna skenario gagal. Selain itu, Anda akan melihat sorotan untuk langkah gagal dalam skenario itu. Ini membuat proses debug menjadi sangat mudah.

Laporan JSON

Sekarang kita telah melihat betapa mudahnya laporan HTML. Namun, jika kami ingin meneruskan informasi laporan ini ke aplikasi lain, itu agak rumit dalam kasus laporan HTML. Di sinilah kebutuhan akan format pelaporan lain. Notasi objek skrip JSON-Java adalah format lain untuk menghasilkan laporan pengujian Ketimun. JSON adalah obyek yang mengandung banyak informasi yang disimpan dalam format teks. Laporan JSON membawa nilai yang berbeda ke tabel. Laporan JSON juga dapat digunakan sebagai muatan informasi untuk ditransfer antara server yang berbeda. Selanjutnya, ini dapat digunakan untuk ditampilkan sebagai halaman web. Singkatnya, laporan JSON dapat digunakan oleh aplikasi lain.

What is payload information?Ketika data dikirim melalui Internet, setiap unit yang dikirimkan mencakup informasi header dan data aktual yang sedang dikirim. Header mengidentifikasi sumber dan tujuan paket, sedangkan data aktual disebut sebagai payload. Untuk menghasilkan laporan JSON, kita hanya perlu melakukan perubahan pada file runner.

  • Ubah opsi format di file runner sebagai berikut.

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( format={"json:target/Destination/cucumber.json"}) 

//When we specify json:target/Destination/cucumber.json - It will generate the JSON  
report inside the Destination folder, in the target folder of the maven project.

public class runTest {}
  • Jalankan tes menggunakan opsi -

    • Pilih runTest.java file dari penjelajah paket.

    • Klik kanan dan pilih opsi Run as.

    • Pilih uji JUnit.

  • Anda akan mengamati hal-hal berikut saat menjalankan file kelas ini.

    • Kedua skenario tersebut akan dieksekusi satu per satu.

  • Laporan itu akan ada di sana bernama cucumber.json (seperti yang disediakan di kelas pelari).

  • Buka cucumber.json file dengan editor teks.

  • Anda akan melihat laporan yang disebutkan di tangkapan layar berikut setelah menempatkan jeda baris -

Note - JSON kurang terbaca dibandingkan dengan format laporan HTML.

Sangat mungkin bahwa tes Anda mungkin gagal karena alasan yang tidak diketahui. Mengidentifikasi penyebab kegagalan dan memperbaikinya sangat penting. Proses ini dikenal sebagaidebugging. Berikut adalah beberapa tip dan trik, yang membuat proses debug Mentimun menjadi sedikit mudah.

Opsi debugging tersedia dengan Eclipse. Tempatkan titik istirahat. Klik file dan debug menggunakan langkah-langkah berikut -

Step 1 - Tempatkan break point manual di file definisi langkah Ruby.

Contoh

require 'ruby-debug' 
Then /^the process should exit cleanly$/ do 
breakpoint 
assert @exited_cleanly, "Process did not exit cleanly: #{@stdout}" 
end

Step 2 - Kami juga dapat menentukan langkah debug terpisah seperti berikut di file definisi langkah.

Then /^I debug$/ do 
breakpoint 
0 
end

Step 3 - Webratadalah alat default untuk pengujian mentimun dengan Rails. Ini memungkinkan Anda melakukan hal-hal seperti tautan klik, ketik dan kirim formulir, dan sebagainya.

Akan ada saat di mana Anda mencoba untuk mengklik sesuatu, misalnya, dan tidak ada. Anda akan mendapatkan gumpalan besar HTML terlempar kembali, dan mencari tahu apa artinya sebenarnya bisa menjadi hambatan nyata.

save_and_open_page

Webrat menyediakan metode save_and_open_page yang menangkap HTML saat ini, menyimpannya, dan kemudian akan membukanya di browser untuk Anda. Sangat berguna sekali.

When /^I follow "(.*)"$/ do |link| 
save_and_open_page 
click_link(link) 
end

Untuk menjalankan tes Ketimun dengan Java, berikut adalah langkah-langkahnya.

Step 1 - Instal Java -

  • Unduh jdk dan jre dari

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

  • Terima perjanjian lisensi.

  • Instal JDK dan JRE.

  • Atur variabel lingkungan seperti yang ditunjukkan pada gambar berikut.

Step 2 - Instal Eclipse IDE -

  • Pastikan JAVA diinstal pada mesin Anda.

  • Unduh Eclipse dari https://eclipse.org/downloads/

  • Unzip dan Eclipse diinstal.

Step 3 - Instal Maven -

  • Unduh Maven -https://maven.apache.org/download.cgi

  • Buka zip file dan ingat lokasinya.

  • Buat variabel lingkungan MAVEN_HOME seperti yang ditunjukkan pada gambar berikut.

  • Edit variabel Path dan sertakan Maven.

  • Unduh plugin MAVEN dari Eclipse

    • Buka Eclipse.

    • Got to Help → Eclipse Marketplace → Search maven → Maven Integration for Eclipse → INSTALL

Step 4 - Konfigurasi Mentimun dengan Maven.

  • Buat proyek Maven.

    • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

    • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

    • Berikan Id artefak (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

    • Klik Selesai.

Step 5 - Buka pom.xml -

  • Pergi ke penjelajah paket di sisi kiri Eclipse.

  • Perluas proyek CucumberTest.

  • Temukan file pom.xml.

  • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

Step 6 - Tambahkan ketergantungan untuk Selenium - Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

  • Di dalam tag dependensi, buat tag dependensi. (<dependency> </dependency>)

  • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>

Step 7 - Tambahkan ketergantungan untuk Ketimun-Java - Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buat satu tag ketergantungan lagi.

  • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>

Step 8 - Tambahkan ketergantungan untuk Cucumber-JUnit - Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buat satu tag ketergantungan lagi.

  • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>

Step 9- Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

  • Buat satu tag ketergantungan lagi.

  • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>

Step 10 - Verifikasi binari.

  • Setelah pom.xml berhasil diedit, simpan.

  • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

  • Anda akan dapat melihat repositori Maven.

Step 11 - Buat paket di bawah src/test/java dinamai sebagai cucumberJava.

Step 12 - Buat file fitur

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti cucumberJava.feature.

  • Tulis teks berikut di dalam file dan simpan.

    Feature: MentimunJava

    Scenario: Fungsionalitas login ada

    Mengingat saya sudah membuka browser

    Saat saya membuka situs Facebook

    Kemudian tombol Login harus keluar

Step 13 - Buat file definisi langkah -

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file nama seperti annotation.java.

  • Tulis teks berikut di dalam file dan simpan.

package CucumberJava; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberJava { 
   WebDriver driver = null; 
   @Given("^I have open the browser$") public void openBrowser() { driver = new FirefoxDriver(); } @When("^I open Facebook website$") 
   public void goToFacebook() { 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
   @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail"); 
      } 
      driver.close(); 
   } 
}

Step 14 - Buat file kelas runner.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file sebagai runTest.java.

  • Tulis teks berikut di dalam file dan simpan.

package cucumberJava; 
import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 
public class runTest { 
}

Step 15 - Jalankan tes menggunakan opsi -

  • Pilih file runTest.java dari penjelajah paket.

  • Klik kanan dan pilih opsi, Run as.

  • Pilih uji JUnit.

Anda akan mengamati hal-hal berikut saat eksekusi -

  • Sebuah contoh dari web browser Firefox akan terbuka.

  • Ini akan membuka halaman login Facebook di browser.

  • Ini akan mendeteksi tombol login.

  • Browser akan ditutup.

  • Di jendela JUnit, Anda akan melihat skenario dengan tanda centang hijau, yang menunjukkan keberhasilan eksekusi tes.

Bahasa Ruby memiliki keuntungan sebagai berikut -

  • Mudah dimengerti.

  • Ini adalah bahasa berorientasi objek.

  • Ini adalah perpustakaan kelas yang kuat.

  • Ini memiliki dukungan online yang sangat besar.

Berikut adalah proses langkah demi langkah tentang cara kerja Ketimun dengan Ruby.

Step 1 - Pasang Ruby.

  • Buka halaman unduh RubyInstaller.

  • Unduh versi yang paling sesuai untuk sistem operasi Anda (yaitu 32 atau 64 bit).

  • Jalankan exe yang diunduh.

  • Selama instalasi, centang opsi “Add Ruby…” dan “Associate…”, seperti yang ditunjukkan pada gambar berikut.

Step 2 - Unduh dan ekstrak kit Dev.

  • Buka halaman unduh RubyInstaller.

  • Unduh versi Devkit yang paling sesuai untuk sistem operasi Anda (yaitu 32 atau 64 bit).

  • Ekstrak devkit di folder c: \ Ruby \ Devkit.

  • Buka prompt perintah.

  • Di dalam Ruby devkit, jalankan perintah berikut.

C:\Ruby\devkit> ruby dk.rb init 
C:\Ruby\devkit> ruby dk.rb install

Step 3 - Pasang Mentimun dan permata Ruby lainnya.

  • Untuk menginstal Ketimun, pertama-tama perbarui pengaturan permata saat ini

C:\Users\Admin> gem update –system
  • Selanjutnya, instal permata yang Anda butuhkan untuk pengujian web Ketimun.

C:\Users\Admin> gem install --no-ri --no-rdoc rspec 
C:\Users\Admin> gem install --no-ri --no-rdoc win32console 
C:\Users\Admin> gem install --no-ri --no-rdoc watir-webdriver 
C:\Users\Admin> gem install --no-ri --no-rdoc cucumber
  • Jalankan Mentimun

C:\Users\Admin\Documents>cucumber –init 
C:\Users\Admin\Documents>cucumber

Step 4 - Instal IDE - KOMODO.

  • Buka halaman http://www.activestate.com/komodo-ide/downloads

  • Unduh penginstal uji coba gratis.

  • Klik dua kali pada exe yang diunduh.

  • Ikuti langkah-langkah instalasi.

  • Selesaikan instalasi dan buka IDE.

Step 5 - Pasang Watir - Buka command prompt dan jalankan perintah berikut, "gem install watir"

Step 6 - Pasang rspec - Buka command prompt dan jalankan perintah berikut, "gem install rspec"

Step 7 - Buat file fitur.

  • Buka editor KOMODO.

  • Klik pada ikon file baru.

  • Tulis teks berikut.

    Feature: Pengguna harus dapat mencari konten menggunakan Google.

    Scenario: Telusuri istilah.

    Mengingat saya sudah masuk "watir" ke dalam kueri.

    Saat saya mengklik "search"

    Maka saya akan melihat beberapa hasil

  • Klik save ikon.

  • Beri nama sebagai CucumberRuby.feature.

  • Pilih folder apa saja, misalnya: “e:\WithRuby”

  • Simpan file.

Step 8 - Buat file definisi langkah.

  • Buka editor KOMODO.

  • Klik ikon file 'Baru'.

  • Tulis kode berikut.

require "watir-webdriver" 
require "rspec/expectations" 

Given /^I have entered "([^"]*)" into the query$/ do |term| 
@browser ||= Watir::Browser.new :firefox 
@browser.goto "google.com" 
@browser.text_field(:name => "q").set term 
end 

When /^I click "([^"]*)"$/ do |button_name| @browser.button.click end Then /^I should see some results$/ do 
@browser.div(:id => "resultStats").wait_until_present 
@browser.div(:id => "resultStats").should exist 
@browser.close 
End
  • Klik ikon simpan.

  • Beri nama sebagai CucumberRuby.rb

  • Pilih folder apa saja, misalnya: “e:\WithRuby”

  • Simpan file.

Step 9 - Buat file uji.

  • Buka editor KOMODO.

  • Klik pada ikon file 'Baru'.

  • Tulis kode berikut.

require "rubygems" 
require "test/unit" 
require "watir-webdriver" 

class GoogleSearch < Test::Unit::TestCase 
def setup 
@browser ||= Watir::Browser.new :firefox 
end 

def teardown 
@browser.close 
end 

def test_search 
@browser.goto "google.com" 
@browser.text_field(:name => "q").set "watir" 
@browser.button.click 
@browser.div(:id => "resultStats").wait_until_present assert 
@browser.title == "watir - Google Search" 
end 
end
  • Klik ikon Simpan.

  • Beri nama file sebagai test.rb dan pilih folder apa saja, misalnya: "e: \ WithRuby"

  • Simpan file.

Step 10 - Jalankan file fitur.

  • Buka command prompt.

  • Masuk ke direktori e:\WithRuby

  • Jalankan perintah berikut.

e:\With Ruby>ruby test.rb

Anda akan mengamati hal-hal berikut saat eksekusi -

  • Instance browser web akan terbuka.

  • Halaman web Google.com akan dimuat.

  • Cari teks watir akan dimasuki.

  • Tombol pencarian akan ditempatkan.

  • Hasil pencarian akan ditampilkan di halaman web.

  • Instance browser akan ditutup.