Mentimun - Garis Besar Skenario
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
Saat 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 masukan (nama pengguna / alamat email / nomor telepon) yang berubah. Di situlah pentingnya garis besar skenario menjadi gambaran.
Ketika kita mendefinisikan skenario apa pun dengan garis besar 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 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>
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 - Fungsi 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.