Kumpulan TestNG: Sertakan, Kecualikan dengan Contoh - Selenium Tutorial

Isi kandungan:

Anonim

TestNG adalah rangka ujian yang merangkumi pelbagai jenis reka bentuk ujian seperti unit, fungsional, ujung ke hujung, UI dan ujian integrasi.

Anda boleh menjalankan satu atau beberapa pakej (pakej di sini bermaksud merangkumi sekumpulan kelas dalam format pengarah yang betul) dengan membuat XML dan menjalankannya melalui maven.

Dalam tutorial ini, anda akan belajar-

  • Kumpulan TestNG dengan Contoh
  • Tetapkan jalur maven dan Java dalam pemboleh ubah persekitaran (untuk pengguna windows)
  • Pengenalan XML dan cara membuat fail XML
  • Mekanisme lain daripada Pengelompokan adalah "kecualikan" atau "sertakan" dalam XML ujian
  • Cara menjalankan kod menggunakan fail XML (demo video)

Kumpulan TestNG dengan Contoh

Kami menggunakan kumpulan dalam Testng ketika,

  • Kami tidak mahu menentukan kaedah ujian secara berasingan dalam kelas yang berbeza (bergantung pada fungsi) dan
  • Pada masa yang sama ingin mengabaikan (untuk tidak melaksanakan) beberapa kes ujian seolah-olah mereka tidak ada dalam kod.
  • Oleh itu, untuk melaksanakannya, kita harus mengumpulkannya. Ini dilakukan dengan menggunakan mekanisme "include" dan "exclude" yang disokong dalam testNG.

Dalam contoh di bawah, kami telah menunjukkan sintaks cara menggunakan kumpulan dalam fail XML.

@Test (kumpulan = {"ikatan", "strong_ties"}) 

Di sini kami menggunakan 2 nama kumpulan iaitu "bonding" dan "strong_ties" (ini adalah nama logik yang boleh diubah mengikut kehendak anda).

tag menentukan permulaan kumpulan dalam XML.

Sesuaikan XML anda untuk memilih kumpulan yang disebutkan dari kelas ujian. Di bawah ini disebutkan sintaks bagaimana menyatakan kumpulan dalam fail XML mis

Oleh itu, mari kita anggap bahawa terdapat 10 kaedah ujian di dalam kelas.

Daripada mereka,

  • 6 kaedah ditandakan dalam kumpulan "ikatan" dan
  • 4 berada dalam kumpulan "strong_ties"

Melangkah ke depan, kami akan mengatur jalur maven / Java dan menggunakan Eclipse IDE untuk menunjukkan penggunaan kelompok menggunakan file XML dalam proyek maven berbasis Java.

Tetapkan jalur maven dan Java dalam pemboleh ubah persekitaran (untuk pengguna windows)

Sila rujuk https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Pengenalan XML dan cara membuat fail XML

  • Fail XML (Extensible Markup Language) dalam kerangka kerja Maven mengandungi maklumat satu atau lebih ujian dan ditentukan oleh tag .
  • Maklumat ujian dalam XML diwakili oleh tag dan boleh mengandungi satu atau lebih kelas TestNG.
  • Kelas Java yang mengandungi penjelasan @Test di atas kaedah ujian ditakrifkan sebagai kaedah TestNG.

Pelbagai tag digunakan dalam urutan untuk membina ujian yang berfungsiNG xml seperti , dan

  • Pertama adalah tag , yang memegang nama logik yang menentukan maklumat penuh untuk testNG yang dilaporkan menghasilkan laporan pelaksanaan.
  • Kedua adalah , perhatikan adalah nama logik yang menyimpan maklumat laporan pelaksanaan ujian seperti lulus, gagal, langkau kes ujian dan maklumat lain seperti jumlah masa pelaksanaan dan maklumat kumpulan
  • Ketiga adalah , com.group.guru99 adalah pakej yang digunakan, dan nama Kelas Uji adalah TC_Class1.

Kami akan menggunakan XML ini untuk kekurangan video yang akan datang.

Mekanisme lain daripada Pengelompokan adalah "kecualikan" atau "sertakan" dalam XML ujian

Katakan anda mendapati penggunaan kompleks mekanisme kumpulan kemudian testNG XML memudahkan fungsi untuk mengecualikan / memasukkan ujian.

Kecualikan Tag : Sintaks untuk tanda kecualikan  Sertakan Tag : Sintaks untuk tanda sertakan 

Catatan: Kami dapat menyertakan / mengecualikan beberapa kes ujian sekali gus, dan ia juga berfungsi dengan Kumpulan.

Cara menjalankan kod menggunakan fail XML (demo video)

Penjelasan Kod Java dan XML dengan kumpulan, kecualikan dan sertakan tag dalam XML.

  • Senario : Lancarkan laman web demo Guru99 Banking, sahkan beberapa perkara di halaman log masuk selepas itu masukkan kelayakan dan sahkan semula beberapa perkara baru pada aplikasi semasa log masuk.

Catatan : Setiap langkah yang anda kodkan harus dinyatakan dalam metode yang terpisah, tetapi ketika dijalankan, ia akan menjalankan metode pengujian bergantung pada entri dalam file XML.

Kaedah 1 : Memulakan Penyemak Imbas dan melancarkan URL (tc01LaunchURL ())

Kaedah 2 : Sahkan Tajuk Halaman Log Masuk (tc02VerifyLaunchPage ())

Kaedah 3 : Masukkan Nama pengguna dan Kata Laluan pada borang log masuk (tc03EnterCredentials ())

Kaedah 4 : Sahkan kehadiran ID Pengurus di Papan Pemuka Pengguna (tc04VerifyLoggedInPage ())

Kaedah 5 : Sahkan beberapa lagi pautan di Papan Pemuka Pengguna (tc05VerifyHyperlinks ())

Kod untuk senario kami:

pakej 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;kelas awam TC_Class1 {webDriver webDriver akhir statik awam = FirefoxDriver baru () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";pengguna String akhirName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";akhir pengguna StringName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [berisi (teks (), 'Manger Id')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Kes ujian ini akan menginisialisasi webDriver* /@Test (kumpulan = {"ikatan", "strong_ties"})kekosongan awam tc01LaunchURL () {webDriver.manage (). window (). maksimalkan ();webDriver.manage (). timeout (). implisitly Tunggu (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Akan memeriksa kehadiran Judul di Halaman Masuk* /@Test (kumpulan = {"ikatan"})kekosongan awam tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplay (),"Tajuk Halaman Utama tidak dipaparkan");System.out.println ("Tajuk Halaman Utama dipaparkan");}/ *** Kes ujian ini akan memasukkan Nama pengguna, kata laluan dan kemudian akan klik* butang log masuk* /@Test (kumpulan = {"ikatan", "strong_ties"})kekosongan awam 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)). klik ();}/ *** Kes ujian ini akan mengesahkan kehadiran ID palungan di DashBoard* /@Test (kumpulan = {"strong_ties"})kekosongan awam tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). Ditayangkan (),"Label ID Pengurus tidak dipaparkan");System.out.println ("Label Id Manger dipaparkan");}/ *** Kes ujian ini akan memeriksa keberadaan pautan pelanggan Baru* Dan pautan FundTransfer di panel kiri* /@Test (kumpulan = {"ikatan"})kekosongan awam tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Hyperlink pelanggan baru tidak dipaparkan");System.out.println ("Hyperlink pelanggan baru ditunjukkan");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Hyperlink Transfer Dana tidak dipaparkan");System.out.println ("hyperlink Transfer Dana dipaparkan");}}

Harap Perhatikan: Kredensial hanya berlaku selama 20 hari, jadi jika anda cuba menjalankan kod pada mesin tempatan anda, jadi anda mungkin menghadapi kesalahan kelayakan tidak sah. Cari di bawah langkah-langkah untuk menghasilkan bukti kelayakan masuk anda:

  1. Lancarkan http://www.demo.guru99.com
  2. Masukkan id e-mel anda di dalam kotak.
  3. Klik enter dan lihat butiran log masuk anda di skrin.

Penjelasan Kod:

Seperti yang disebutkan di atas, kami telah membuat 5 kes ujian untuk melakukan setiap tindakan dengan kaedah bebas.

Anda dapat memperhatikan bahawa untuk setiap kaedah, kami telah mengaitkan parameter kumpulan dengan beberapa nilai di dalamnya.

Pada dasarnya, ini adalah nama kumpulan yang membezakan iaitu "strong_ties" & "bonding".

  • Kaedah Pertama dan Ketiga ditandai dengan "bonding", "strong_ties" yang bermaksud jika XML dikemas kini dalam mana-mana kumpulan, Case Test ini akan dijalankan.
  • Kaedah kedua hanya ditandai pada kumpulan "ikatan" ini bermaksud jika XML dikemas kini dengan kumpulan ikatan. Hanya dalam kes ini, kes ujian ini akan dijalankan.
  • Kes Ujian Keempat ditandakan ke kumpulan strong_ties, yang bermaksud kes ujian ini hanya akan dijalankan jika XML dikemas kini dengan nama kumpulan strong_ties.
  • Kes ujian kelima terakhir tetapi tidak dilampirkan ke kumpulan ikatan, yang bermaksud kes ujian ini hanya akan dijalankan jika XML dikemas kini dengan nama kumpulan ikatan.

Jadi secara keseluruhan, kami mempunyai 4 senario;

  1. Kami mahu menjalankan semua kes ujian tanpa mengira nama kumpulan. Dalam kes ini, kami akan membuang tag Kumpulan daripada menjalankan XML.
  1. Kami ingin menjalankan beberapa ujian yang hanya berkaitan dengan salah satu kumpulan iaitu strong_ties atau bonding
  • Sila rujuk:

  • Dalam video ini, parameter Kumpulan dikomentari dari menjalankan XML. Oleh itu, anda akan melihat semua kes ujian telah dilaksanakan.
  • Sebagai kelanjutan untuk video, sekarang kami telah memasukkan nama kumpulan dalam XML, Anda dapat melihat hanya kes ujian khusus untuk kumpulan tersebut yang sedang berjalan.
  1. Kami menggunakan mekanisme Kecualikan untuk mengecualikan kes ujian:
  • Sila rujuk

  • Anda melihat bahawa kami telah menggunakan tidak termasuk beberapa kes ujian (tc02) dengan menulis nama mereka dalam menjalankan XML. Dalam keputusan akhir disebut kes ujian tidak berjalan.
  1. Terakhir, kami menggunakan mekanisme ujian termasuk untuk memasukkan kes ujian (tc01LaunchURL, tc03EnterCredentials dan tc05VerifyHyperlinks)
    • Sila rujuk

    • Dalam video ini, anda akan melihat bahawa kes ujian yang disebutkan dalam XML hanya berjalan semasa pelaksanaan ujian.

    Sila muat turun kod dari URL yang disebutkan, ia akan mengandungi semua jenis testXML:

    Muat turun Kod di atas

    Kesimpulannya

    Kami telah belajar di sini cara baru untuk menjalankan kes ujian menggunakan XML dalam projek Maven.

    Kami bermula dengan memberikan pengenalan ringkas mengenai testNG dan meneruskan spesifikasi teknikal penuh Kumpulan, tidak termasuk dan sertakan.