Kelompok Pengujian – Menyertakan & Mengecualikan (Contoh)
TestNG adalah kerangka Pengujian yang mencakup berbagai jenis desain pengujian seperti pengujian unit, fungsional, ujung ke ujung, UI, dan integrasi.
Anda dapat menjalankan satu atau beberapa paket (paket di sini berarti merangkum sekelompok kelas dalam format direktur yang tepat) dengan membuat XML dan menjalankannya melalui maven.
TestNG Kelompok dengan Contoh
Kami menggunakan grup di Pengujian kapan,
- Kami tidak ingin mendefinisikan metode pengujian secara terpisah di kelas yang berbeda (bergantung pada fungsionalitas) dan
- Pada saat yang sama ingin mengabaikan (tidak mengeksekusi) beberapa kasus uji seolah-olah tidak ada dalam kode.
- Jadi untuk melakukan ini kita harus mengelompokkannya. Hal ini dilakukan dengan menggunakan mekanisme “sertakan” dan “kecualikan” yang didukung di testNG.
Pada contoh di bawah ini, kami telah menunjukkan sintaks cara menggunakan grup dalam file XML.
@Test (groups = { "bonding", "strong_ties" })
Di sini kami menggunakan 2 nama grup yaitu “bonding” dan “strong_ties” (ini adalah nama logis yang dapat diubah sesuai keinginan Anda).
<groups>
tag mendefinisikan awal grup dalam XML.
Sesuaikan XML Anda untuk memilih grup yang disebutkan dari kelas pengujian. Disebutkan di bawah ini adalah sintaks cara mendeklarasikan grup dalam file XML misalnya
<groups> <run> <include name="bonding" /> </run> </groups>
Jadi, mari kita asumsikan ada 10 metode pengujian dalam satu kelas.
Dari mereka,
- 6 metode ditandai dalam kelompok “ikatan” dan
- 4 berada dalam kelompok “strong_ties”
Ke depannya, kita akan menetapkan maven/Java jalur dan gunakan Eclipse IDE untuk mendemonstrasikan penggunaan grup menggunakan file XML di Java proyek pakar berbasis.
Buat XML untuk TestNG dengan tanda
- File XML (Extensible Markup Language) dalam kerangka Maven berisi informasi dari satu atau lebih pengujian dan ditentukan oleh menandai.
- Informasi pengujian dalam XML diwakili oleh menandai dan dapat berisi satu atau lebih TestNG kelas.
- A Java kelas yang berisi @Uji anotasi di atas metode pengujian didefinisikan sebagai TestNG metode.
Beberapa tag digunakan secara berurutan untuk membuat xml testNG yang berfungsi , Dan
- Yang pertama adalah tag, yang menyimpan nama logis yang mendefinisikan informasi lengkap ke testNG yang dilaporkan untuk menghasilkan laporan eksekusi.
- Yang kedua adalah , perhatikan itu adalah nama logis yang menyimpan informasi laporan pelaksanaan pengujian seperti lulus, gagal, melewati kasus pengujian dan informasi lainnya seperti total waktu eksekusi dan info grup
- Yang ketiga adalahcom.group.guru99.TC_Class1” />, com.group.guru99 adalah paket yang digunakan, dan nama Kelas Tes adalah TC_Class1.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test name="Guru 99 Smoke Test Demo"> <groups> <run> <include name="strong_ties" /> </run> </groups> <classes> <class name="com.group.guru99.TC_Class1" /> </classes> </test> </suite>
Kami akan menggunakan XML ini untuk video mendatang yang diberikan pada bagian di bawah.
"kecualikan" atau "sertakan" dalam XML pengujian
Misalkan Anda menemukan penggunaan mekanisme grup yang kompleks, maka testNG XML memfasilitasi fungsionalitas untuk mengecualikan/menyertakan pengujian.
Exclude Tag: Syntax for exclude tag <exclude name="${TEST_CASE_NAME}" /> Include Tag: Syntax for include tag <include name="${TEST_CASE_NAME}" />
Catatan: Kami dapat menyertakan/mengecualikan beberapa kasus pengujian sekaligus, yang juga berfungsi dengan Grup.
Run TestNG Kelompokkan, sertakan, kecualikan kode (demo video)
Penjelasan dari Java Kode dan XML dengan kelompokkan, kecualikan dan sertakan tag dalam XML.
Skenario Uji: Luncurkan situs demo Banking Guru99, verifikasi beberapa hal yang ada di halaman login setelah itu, masukkan kredensial, dan verifikasi ulang beberapa hal baru pada aplikasi saat login.
Catatan: Setiap langkah yang Anda kode harus dideklarasikan dalam metode terpisah, tetapi ketika dijalankan, metode pengujian akan dijalankan tergantung pada entri dalam file XML.
- Metode 1: Inisialisasi Browser dan luncurkan URL (tc01LaunchURL())
- Metode 2: Verifikasi Judul Halaman Login (tc02VerifyLaunchPage())
- Metode 3: Masukkan nama pengguna dan kata sandi pada formulir login (tc03EnterCredentials())
- Metode 4: Verifikasi keberadaan ID Manajer di Dasbor Pengguna (tc04VerifyLoggedInPage())
- Metode 5: Verifikasi beberapa tautan lagi di Dasbor Pengguna (tc05VerifyHyperlinks())
Kode untuk skenario kita:
package com.group.guru99; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class TC_Class1 { public static final WebDriver webDriver = new FirefoxDriver();; String launchPageHeading = "//h3[text()='Guru99 Bank']"; final String userName_element = "//input[@name='uid']", password_element = "//input[@name='password']", signIn_element = "//input[@name='btnLogin']"; final String userName_value = "mngr28642", password_value = "ydAnate"; final String managerID = "//td[contains(text(),'Manger Id')]"; final String newCustomer = "//a[@href='addcustomerpage.php']", fundTransfer = "//a[@href='FundTransInput.php']"; /** * This test case will initialize the webDriver */ @Test(groups = { "bonding", "strong_ties" }) public void tc01LaunchURL() { webDriver.manage().window().maximize(); webDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); webDriver.get("http://www.demo.guru99.com/V4/"); } /** * Will check the presence of Heading on Login Page */ @Test(groups = { "bonding" }) public void tc02VerifyLaunchPage() { Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(), "Home Page heading is not displayed"); System.out.println("Home Page heading is displayed"); } /** * This test case will enter User name, password and will then click on * signIn button */ @Test(groups = { "bonding", "strong_ties" }) public void tc03EnterCredentials() { webDriver.findElement(By.xpath(userName_element)).sendKeys(userName_value); webDriver.findElement(By.xpath(password_element)).sendKeys(password_value); webDriver.findElement(By.xpath(signIn_element)).click(); } /** * This test case will verify manger's ID presence on DashBoard */ @Test(groups = { "strong_ties" }) public void tc04VerifyLoggedInPage() { Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(), "Manager ID label is not displayed"); System.out.println("Manger Id label is displayed"); } /** * This test case will check the presence of presence of New customer link * And FundTransfer link in Left pannel */ @Test(groups = { "bonding" }) public void tc05VerifyHyperlinks() { Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(), "New customer hyperlink is not displayed"); System.out.println("New customer hyperlink is displayed"); Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(), "Fund Transfer hyperlink is not displayed"); System.out.println("Fund Transfer hyperlink is displayed"); } }
Harap Dicatat: Kredensial hanya valid selama 20 hari, jadi jika Anda mencoba menjalankan kode di mesin lokal Anda, Anda mungkin menghadapi kesalahan kredensial tidak valid.
Penjelasan Kode:
Seperti disebutkan di atas, kami telah membuat 5 kasus uji untuk melakukan setiap tindakan dalam metode independen.
Untuk setiap metode, kami telah mengaitkan parameter grup dengan beberapa nilai.
Pada dasarnya, ini adalah nama kelompok pembeda yaitu “strong_ties” & “bonding”.
- Metode Pertama dan Ketiga ditandai dengan “bonding”, “strong_ties” yang berarti jika XML diperbarui di salah satu grup, ini Uji Kasus akan berlari.
- Cara kedua hanya diberi tag ke grup “bonding” artinya jika XML diupdate dengan grup bonding. Hanya dalam hal ini kasus uji ini akan dijalankan.
- Test case keempat ditandai ke grup strong_ties, artinya test case ini hanya akan berjalan jika XML diperbarui dengan nama grup strong_ties.
- Test case yang terakhir namun tidak kalah pentingnya kelima dilampirkan ke grup bonding, yang berarti test case ini hanya akan berjalan jika XML diperbarui dengan nama grup bonding.
Jadi secara keseluruhan, kami memiliki 4 skenario;
Skenario 1: Kami ingin menjalankan semua kasus uji terlepas dari nama grupnya. Dalam hal ini, kami akan menghapus tag Grup dari menjalankan XML.
Skenario 2: Kami ingin menjalankan beberapa tes yang hanya berhubungan dengan salah satu kelompok yaitu strong_ties atau bonding. Silakan lihat:
- Dalam video ini, parameter Grup dikomentari dari menjalankan XML. Oleh karena itu, Anda akan melihat semua kasus uji dieksekusi.
- Sebagai kelanjutan dari video, sekarang kami telah menyertakan nama grup dalam XML, Anda hanya dapat melihat kasus uji khusus untuk grup tersebut yang sedang berjalan.
Skenario 3: Kami menggunakan mekanisme Kecualikan untuk mengecualikan kasus uji. Silakan lihat videonya
- Anda melihat bahwa kami telah menggunakan pengecualian beberapa kasus uji (tc02) dengan menuliskan namanya dalam menjalankan XML. Pada hasil akhir, kasus uji yang disebutkan tidak berjalan.
Skenario 4: Terakhir, kami menggunakan mekanisme pengujian penyertaan untuk menyertakan kasus pengujian (tc01LaunchURL, tc03EnterCredentials, dan tc05VerifyHyperlinks). Silakan lihat videonya
Dalam video ini, Anda akan melihat bahwa kasus pengujian yang disebutkan dalam XML hanya berjalan selama eksekusi pengujian.
Silakan unduh kode dari kode untuk contoh di atas-
Kesimpulan
Di sini kita telah mempelajari cara yang relatif baru dalam menjalankan kasus uji menggunakan XML di proyek Maven.
Kami memulai dengan memberikan pengenalan singkat tentang testNG dan melanjutkan dengan spesifikasi teknis lengkap tentang Grup, kecualikan, dan sertakan.