TestNG membolehkan anda menjalankan kaedah ujian, kelas ujian dan kes ujian selari di dalam projek anda. Dengan melakukan pelaksanaan selari, kita dapat mengurangkan 'waktu pelaksanaan' ketika ujian dimulakan dan dilaksanakan secara serentak dalam rangkaian yang berbeza.
Di sini kita akan melihat bagaimana menjalankan beberapa kelas (alias suite berbeza) menggunakan TestNG.
Langkah 1) Membuat fail TestNG.xml untuk melaksanakan ujian
Untuk melakukannya, ikuti langkah-langkah di bawah.
- Buat projek baru dalam gerhana
- Buat dua pakej dalam projek (namakan sebagai com.suite1 dan com.suite2)
- Buat kelas di setiap pakej (namakan mereka sebagai Flipkart.java dan Snapdeal.java) dan salin kod di bawah di kelas masing-masing
- Buat fail baru dalam projek anda dan beri nama sebagai testng.xml (Pastikan anda memasang plugin ujian untuk gerhana, arahan tersedia di sini) Testng.xml mengandungi semua konfigurasi (nama kelas, nama ujian dan nama samaran.
Flipkart.java
pakej com.suite1;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;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.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;Flipkart kelas awam {Pemacu WebDriver = FirefoxDriver baru ();Nama pengguna rentetan = ""; // Tukar ke nama pengguna dan kata laluan andaKata laluan rentetan = "";// Kaedah ini adalah untuk menavigasi URL flipkart@BeforeClassinit kekosongan awam () {driver.manage (). window (). maksimalkan ();driver.manage (). timeout (). secara implisitTunggu (60, TimeUnit.SECONDS);driver.navigate (). ke ("https://www.flipkart.com");}// Untuk log masuk ke kad masuk@ Ujianlog masuk tidak sah awam () {driver.findElement (By.partialLinkText ("Login")). klik ();driver.findElement (Oleh.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (nama pengguna);driver.findElement (Oleh.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (kata laluan);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). klik ();}// Cari produk@ Ujiancarian kosong awamAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (Oleh.cssSelector ("search-bar-submit.fk-font-13.fk-font-bold")).klik ();// pilih item pertama dalam hasil carianRentetan css = ".gd-row.browse-grid-baris: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). klik ();}@ Ujianpembatalan awam beliAndRemoveFromCart () {driver.findElement (Oleh.cssSelector (". Btn-express-checkout.btn-big.current")).klik ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). klik ();Makluman a = driver.switchTo (). Alert ();a. terima ();}@ Ujianlog keluar kosong awam () {Tindakan s = Tindakan baru (pemandu);Pengguna WebElement = driver.findElement (By.partialLinkText (nama pengguna));s.moveToElement (pengguna). build (). perform ();driver.findElement (By.linkText ("Logout")). klik ();}@Selepas kelasberhenti awam tidak sah () {pemandu.tutup ();}}
SnapDeal.java
pakej com.suite2;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;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.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;SnapDeal kelas awam {Pemacu WebDriver = FirefoxDriver baru ();Nama pengguna rentetan = ""; // Tukar ke nama pengguna dan kata laluan andaKata laluan rentetan = "";Rentetan pinCode = "";// Kaedah ini adalah untuk menavigasi URL snapdeal@BeforeClassinit kekosongan awam () {driver.manage (). window (). maksimalkan ();driver.manage (). timeout (). secara implisitTunggu (60, TimeUnit.SECONDS);driver.navigate (). ke ("https://www.snapdeal.com");}// Untuk log masuk ke kad masuk@ Ujianlog masuk tidak sah awam () {driver.findElement (By.xpath ("// butang [text () = 'Login']")). klik ();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 laluan);driver.findElement (By.id ("sign__submit")). klik ();driver.switchTo (). defaultContent ();}// Cari produk@ Ujiancarian kosong awamAndSelectProduct () {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 dalam hasil carianRentetan css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). klik ();}@ Ujianpembatalan awam beliAndRemoveFromCart () {driver.findElement (By.xpath ("// li [mengandung (teks (), 'Perak')]")). klik ();driver.findElement (By.id ("pincode-check")). sendKeys (pinCode);driver.findElement (By.id ("beli-butang-id")). klik ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). klik ();Makluman a = driver.switchTo (). Alert ();a. terima ();}@ Ujianlog keluar kosong awam () {driver.findElement (By.linkText ("MULAI BELANJA SEKARANG")). klik ();Tindakan s = Tindakan baru (pemandu);Pengguna WebElement = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (pengguna). build (). perform ();driver.findElement (By.linkText ("Logout")). klik ();}@Selepas kelasberhenti awam tidak sah () {pemandu.tutup ();}}
UjiNg.xml
Struktur projek akhir seperti di bawah,
Langkah 2) Pelaksanaan selari dalam TestNG
Setelah membuat fail xml seperti yang ditunjukkan di atas, pada langkah seterusnya, kami akan menjalankan ujian selari. Berikut adalah kodnya.
1) kiraan benang : Ini digunakan untuk pelaksanaan selari, berdasarkan skrip nombor. Ia akan dilaksanakan mengikut urutan selari atau berurutan.
2) verbose : Ia digunakan untuk mencatat butiran pelaksanaan di konsol. Nilainya hendaklah 1-10. Perincian log di tetingkap konsol akan menjadi lebih terperinci dan lebih jelas semasa anda meningkatkan nilai atribut verbose dalam fail konfigurasi testng.xml.
3) nama : Nama suite. Inilah "Gmail Suite"
4) Selari : Untuk menjalankan skrip selari, nilai boleh menjadi ujian / kelas / kaedah / suite. Nilai lalai tidak ada
Klik kanan pada testng.xml dan pilih run as testing, setelah berjaya anda akan melihat semua hasilnya
Apabila anda melaksanakan kod di atas, anda akan mendapat output berikut.
Pengeluaran:
1) nama suite yang diberikan dalam testng.xml
2) nama ujian yang diberikan dalam testng.xml
3) nama kelas yang diberikan dalam testng.xml
4) nama kaedah yang dijelaskan dengan @Test dalam fail .java
Begitu juga, ia akan melaksanakan suite ujian untuk kesepakatan snap.
Kesimpulan:
Di sini kita telah melihat contoh di atas, bagaimana menggunakan Testng untuk menjalankan ujian selari. TestNG memberikan pilihan untuk menjalankan beberapa ujian secara selari dalam satu fail konfigurasi (XML).