TestNG memungkinkan Anda menjalankan metode pengujian, menguji class, dan menguji kasus secara paralel di dalam project Anda. Dengan melakukan eksekusi paralel, kita dapat mengurangi 'waktu eksekusi' saat pengujian dimulai dan dijalankan secara bersamaan di berbagai utas.
Di sini kita akan melihat bagaimana menjalankan beberapa kelas (alias suite berbeda) menggunakan TestNG.
Langkah 1) Membuat file TestNG.xml untuk menjalankan pengujian
Untuk melakukan itu ikuti langkah-langkah di bawah ini.
- Buat proyek baru di gerhana
- Buat dua paket dalam proyek (beri nama sebagai com.suite1 dan com.suite2)
- Buat kelas di setiap paket (beri nama sebagai Flipkart.java dan Snapdeal.java) dan salin kode di bawah ini di masing-masing kelas
- Buat file baru dalam proyek Anda dan beri nama sebagai testng.xml (Pastikan Anda telah menginstal plugin pengujian untuk eclipse, petunjuk tersedia di sini). Testng.xml berisi semua konfigurasi (classnames, testnames dan suitnames.
Flipkart.java
paket com.suite1;import java.util.concurrent.TimeUnit;impor org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;impor org.openqa.selenium.firefox.FirefoxDriver;impor org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;kelas publik Flipkart {Driver WebDriver = FirefoxDriver baru ();Nama pengguna string = ""; // Ubah ke nama pengguna dan kata sandi AndaString sandi = "";// Metode ini untuk menavigasi URL flipkart@Sebelum kelaspublic void init () {driver.manage (). window (). maksimalkan ();driver.manage (). timeout (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Untuk masuk ke flipkart@Ujipublic void login () {driver.findElement (By.p PartialLinkText ("Login")). click ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (nama pengguna);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (kata sandi);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). click ();}// Cari produk@Ujipublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("search-bar-submit.fk-font-13.fk-font-bold")).klik();// pilih item pertama di hasil pencarianString css = ".gd-row.browse-grid-row: nth-of-type (1)> div: n-anak (1)> div> div: n-anak (2)> div> a";driver.findElement (By.cssSelector (css)). klik ();}@Ujipublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).klik();driver.findElement (By.cssSelector (". remove.fk-inline-block")). click ();Peringatan a = driver.switchTo (). Alert ();a.accept ();}@Ujipublic void logout () {Tindakan s = Tindakan baru (driver);WebElement pengguna = driver.findElement (By.p PartialLinkText (nama pengguna));s.moveToElement (pengguna) .build (). perform ();driver.findElement (By.linkText ("Logout")). klik ();}@Setelah Kelaspublic void berhenti () {driver.close ();}}
SnapDeal.java
paket com.suite2;import java.util.concurrent.TimeUnit;impor org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;impor org.openqa.selenium.firefox.FirefoxDriver;impor org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;kelas publik SnapDeal {Driver WebDriver = FirefoxDriver baru ();Nama pengguna string = ""; // Ubah ke nama pengguna dan kata sandi AndaString sandi = "";String pinCode = "";// Metode ini untuk menavigasi URL snapdeal@Sebelum kelaspublic void init () {driver.manage (). window (). maksimalkan ();driver.manage (). timeout (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Untuk masuk ke flipkart@Ujipublic void login () {driver.findElement (By.xpath ("// tombol [text () = 'Login']")). click ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).klik();driver.findElement (By.id ("j_username")). sendKeys (nama pengguna);driver.findElement (By.id ("j_password_login")). sendKeys (kata sandi);driver.findElement (By.id ("signin_submit")). klik ();driver.switchTo (). defaultContent ();}// Cari produk@Ujipublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). klik ();// pilih item pertama di hasil pencarianString css = ".product_grid_row: jenis-n (1)> div: anak-n (1)";driver.findElement (By.cssSelector (css)). klik ();}@Ujipublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [berisi (text (), 'Silver')]")). click ();driver.findElement (By.id ("pincode-check")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). click ();driver.findElement (By.cssSelector ("i [title = 'Hapus Item']")). klik ();Peringatan a = driver.switchTo (). Alert ();a.accept ();}@Ujipublic void logout () {driver.findElement (By.linkText ("MULAI BELANJA SEKARANG")). klik ();Tindakan s = Tindakan baru (driver);WebElement user = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (pengguna) .build (). perform ();driver.findElement (By.linkText ("Logout")). klik ();}@Setelah Kelaspublic void berhenti () {driver.close ();}}
TestNg.xml
kelas> kelas>
Struktur proyek akhir terlihat seperti di bawah ini,
Langkah 2) Eksekusi paralel di TestNG
Setelah membuat file xml seperti gambar di atas, selanjutnya kita akan melakukan parallel test. Di bawah ini adalah kodenya.
1) thread-count : Ini digunakan untuk eksekusi paralel, berdasarkan skrip nomor. Ini akan dieksekusi secara paralel atau berurutan.
2) verbose : Digunakan untuk mencatat detail eksekusi di konsol. Nilainya harus 1-10. Detail log di jendela konsol akan menjadi lebih mendetail dan lebih jelas saat Anda meningkatkan nilai atribut verbose di file konfigurasi testng.xml.
3) nama : Nama suite. Ini dia "Gmail Suite"
4) Paralel : Untuk menjalankan skrip paralel, nilai dapat berupa tes / kelas / metode / suite. Nilai defaultnya tidak ada
Klik kanan pada testng.xml dan pilih run as testing, setelah berhasil Anda akan melihat semua hasilnya
Saat Anda menjalankan kode di atas, Anda akan mendapatkan output berikut.
Keluaran:
1) nama suite yang diberikan dalam testng.xml
2) nama pengujian yang diberikan dalam testng.xml
3) nama kelas yang diberikan dalam testng.xml
4) nama metode yang dianotasi dengan @Test dalam file .java
Selain itu, ia juga akan menjalankan rangkaian pengujian untuk kesepakatan sekejap.
Kesimpulan:
Di sini kita telah melihat contoh di atas, bagaimana menggunakan Testng untuk menjalankan tes paralel. TestNG memberikan opsi untuk menjalankan beberapa pengujian secara paralel dalam satu file konfigurasi (XML).