Selenium WebDriver: TestNG Untuk Pengurusan Kes Ujian & Penjanaan Laporan



Tutorial Selenium WebDriver ini akan membantu anda memahami keperluan menggunakan TestNG dengan Selenium untuk menguruskan kes ujian dan menghasilkan laporan ujian terperinci.

Di blog sebelumnya, saya mengajar anda bagaimana menjalankan ujian Selenium WebDriver pertama anda. Dalam blog ini, saya akan merangkumi konsep Selenium WebDriver lanjutan. Saya telah menyebut beberapa kali bahawa Selenium WebDriver mempunyai batasan berkenaan dengan pengurusan kes ujian dan penghasilan laporan ujian. Jadi, apakah alternatifnya? Alat yang popular seperti Selenium pasti ada jalan penyelesaiannya bukan? Sudah tentu ia berlaku! Kita boleh menggunakan gabungan Selenium dan TestNG untuk mengatasi had ini dan itu akan menjadi topik perbincangan blog ini.

ubah rentetan menjadi php array

Sekiranya anda baru mengenali Selenium, dan ingin memperkenalkan konsep asas, anda boleh memulakan perjalanan dari sini: ? Walau bagaimanapun, yang lain boleh memulakan dengan TestNG untuk Selenium dari blog ini.Anda juga harus tahu bahawa organisasi aktif mencari profesional dengan , menjadikannya kemahiran penting untuk diuji oleh penguji perisian.





Pembangun perisian dari seluruh dunia sebulat suara akan bersetuju bahawa menulis kod dalam kes ujian menjimatkan sebahagian besar masa penyahpepijatan mereka. Kenapa? Ini kerana kes ujian membantu membuat kod yang kuat dan bebas ralat. Bagaimana ia berlaku? Dengan memecahkan keseluruhan kod ke dalam kes ujian yang lebih kecil, dan kemudian dengan menilai setiap kes ujian ini ke keadaan lulus / gagal, kita dapat membuat kod bebas ralat. Oleh kerana Selenium tidak menyokong pelaksanaan kod dalam kes ujian, kita harus menggunakan TestNG untuk perkara yang sama. Di sinilah TestNG sesuai dengan kerangka Selenium.

UjianNG bermaksud Uji Generasi Seterusnya dan ini adalah kerangka automasi ujian sumber terbuka yang diilhamkan oleh JUnit dan NUnit. Bukan hanya diilhamkan, tetapi peningkatan kepada dua kerangka tersebut. Oleh itu, anda mungkin bertanya apakah peningkatan di sini?Peningkatan dengan TestNG adalah, ia memberikan fungsi tambahan seperti: anotasi ujian, pengelompokan, keutamaan, parameterisasi dan teknik penjujukan dalam kod yang tidak mungkin dilakukan lebih awal.



Selain menguruskan kes ujian, laporan terperinci ujian juga boleh didapati dengan menggunakan TestNG. Akan ada ringkasan yang memaparkan kes ujian yang telah gagal, bersama dengan kumpulan yang menjadi bagiannya, dan kelas yang menjadi tempatnya jatuh. Apabila pepijat dapat dijumpai dengan tepat seperti ini, bug dapat diperbaiki dengan segera untuk membantu pembangun. Gambar di bawah menggambarkan cara kerja TestNG.

testng - pemacu web selenium

Jadi, bagaimana TestNG menyelesaikan tugasnya? Soalan ini akan dijawab dalambahagian seterusnya dari blog tutorial Selenium WebDriver ini, di mana saya akan membincangkan bagaimana menguruskan pelbagai kes ujian dengan menggunakan TestNG.



Selenium WebDriver With TestNG

Kes ujian dapat ditentukan dan dikendalikan dengan salah satu cara berikut:

  1. Anotasi Ujian
  2. Keutamaan
  3. Melumpuhkan Kes Ujian
  4. Ketergantungan Kaedah
  5. Pengumpulan
  6. Ketegasan
  7. Penjanaan Laporan

Mari saya mula menerangkansetiap fungsi ini.

Anotasi Ujian

Pertama sekali, mari tanyakan kepada diri kita sendiri soalan ini: Mengapa kita perlu menggunakan anotasi? Bilakah kita boleh menggunakannya? Anotasi dalam Selenium digunakan untuk mengawal kaedah seterusnya yang akan dilaksanakan. Anotasi ujian ditentukan sebelum setiap kaedah dalam kod ujian. Sekiranya kaedah apa pun tidak diawali dengan anotasi, maka kaedah tersebut akan diabaikan dan tidak akan dilaksanakan sebagai bagian dari kod ujian. Untuk menentukannya, kaedah perlu diberi penjelasan dengan ‘ @ Ujian '. Lihat coretan kod di bawah misalnya.

pakej testng import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.annotations.AfterClass import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeClass import org.testng.annotations .BeforeMethod import org.testng.annotations.Test public class TestAnnotations {@Test public void myTestMethod () {System.out.println ('Inside method: - myTestMethod') WebDriver driver = FirefoxDriver baru () driver.get ('http: //www.seleniumframework.com/Practiceform/ ') String title = driver.getTitle () System.out.println (title) driver.quit ()} @BeforeMethod awam batal sebelumMetode () {System.out.println (' Ini sekeping kod dilaksanakan sebelum kaedah: - myTestMethod ') System.setProperty (' webdriver.gecko.driver ',' C: UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe ')} @AfterMethod public void afterMethod () {System.out.println (' Potongan ini kod dilaksanakan selepas kaedah: - myTestMethod ')} @BeforeClass public void beforeClass () {Syste m.out.println ('Potongan kod ini dilaksanakan sebelum kelas dijalankan')} @AfterClass public void afterClass () {System.out.println ('Potongan kod ini dilaksanakan setelah kelas dijalankan')} }

Dalam kod di atas, anda mungkin menyedari bahawa saya belum menentukan kaedah 'utama'. Walau bagaimanapun, saya mempunyai 5 kaedah lain yang ditentukan. Mereka adalah 'myTestMethod', 'beforeMethod', 'afterMethod', 'beforeClass' dan 'afterClass'. Juga, perhatikan urutan definisi kaedah dalam kod kerana mereka tidak akan dilaksanakan dalam urutan yang sama.

Kaedah ‘myTestMethod’ diberi penjelasan dengan @ Ujian , dan ini adalah kaedah utama atau sekeping kod yang harus dilaksanakan. Kaedah anotasi lain akan dilaksanakan sebelum dan selepas kaedah ini dilaksanakan. Oleh kerana ‘BeforeMethod’ diberi penjelasan dengan @Sebelumnya Kaedah , ia akan dilaksanakan sebelum ‘myTestMethod’ dijalankan. Begitu juga, ‘afterMethod’ diberi penjelasan dengan @AfterMetode , dan dengan itu ia akan dilaksanakan setelah ‘myTestMethod’.

Walau bagaimanapun, ‘BeforeClass’ diberi penjelasan dengan @BeforeClass , yang bermaksud ia akan dilaksanakan bahkan sebelum kelas itu sendiri dijalankan. Nama kelas kami di sini ialah UjianAnotasi , dan dengan itu sebelum kelas mula dilaksanakan, sekeping kod di dalam 'BeforeClass' akan dilaksanakan. Begitu juga, ‘afterClass’ diberi penjelasan dengan @AfterMetode , dan dengan itu akan dilaksanakan selepas kelas UjianAnotasi dilaksanakan.

Sekiranya anda masih mempunyai kekeliruan mengenai susunan pelaksanaan, coretan di bawah pasti akan membantu anda.

1. BeforeSuite 2. BeforeTest 3. BeforeClass 4. BeforeM Method 5. Test 6. AfterM Method 7. AfterClass 8. AfterTest 9. AfterSuite

Keluaran kod di atas adalah:

Bahagian kod ini dilaksanakan sebelum kelas dilaksanakan Bahagian kod ini dilaksanakan sebelum kaedah: - myTestMethod Inside method: - myTestMethod 1493192682118 geckodriver INFO Mendengarkan pada 127.0.0.1.13676 1493192682713 mozprofile :: profil INFO Menggunakan jalur profil C: UsersVardhanAppDataLocalTemp us .wGkcwvwXkl2y 1493192682729 geckodriver :: marionette INFO Memulakan penyemak imbas C: Filem Program (x86) Mozilla Firefoxirefox.exe 1493192682729 geckodriver :: marionette INFO Menyambungkan ke Marionette pada localhost: 59792 [GPU 6152] PERINGATAN: fail: c: fail /moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, talian 346 1493192688316 INFO Marionette Mendengarkan di port 59792 26 Apr 2017 1:14:49 PM org. openqa.selenium.remote.ProtocolHandshake create INFO Sesi: Dialek yang dikesan: Ralat JavaScript W3C: http://t.dtscout.com/i/?l=http%3A%2F%2Fwww.seleniumframework.com%2FPracticeform%2F&j=, line 1: TypeError: document.getElementsByTagNa saya (...) [0] adalah Kerangka Selenium yang tidak ditentukan | Practiceform 1493192695134 INFO Marionette Sambungan baru tidak akan lagi diterima 26 Apr 2017 1:14:57 PM org.openqa.selenium.os.UnixProcose HILANGKAN: Tidak dapat membunuh proses dengan PID 6724 Bahagian kod ini dilaksanakan selepas kaedah: - myTestMethod Potongan kod ini dilaksanakan setelah kelas dijalankan LULUS: myTestMethod =================================== ============ Ujian lalai Ujian dijalankan: 1, Kegagalan: 0, Langkau: 0 ======================== ======================= =========================== ==================== Suite lalai Jumlah ujian dijalankan: 1, Kegagalan: 0, Langkau: 0 =============== ================================

Seperti yang anda lihat dari output di atas, jumlah ujian yang dijalankan adalah 1 dan gagal adalah 0. Ini bermaksud bahawa kodnya berjaya. Malah urutan pelaksanaan kaedah akan mengikut urutanSayadisebutkan sebelumnya.

Apabila anda melaksanakan kod ini di mesin anda, Selenium WebDriver akan membuat penyemak imbas Firefox anda, menavigasi ke borang latihan Selenium Framework, menutup contoh penyemak imbas dan memaparkan output yang sama seperti yang ditunjukkan di atas di Eclipse IDE anda.

Saya hanya menggunakan 5 anotasi berbeza dalam kod saya. Tetapi ada banyak lagi anotasi yang dapat digunakan untuk mengendalikan kaedah seterusnya yang akan dijalankan. Keseluruhan senarai penjelasan dijelaskan dalammejadi bawah:

@SebelumSuite - Kaedah yang dijelaskan dengan @SebelumSuite akan dijalankan sebelum semua ujian di suite dijalankan.

@AfterSuite - Kaedah yang dijelaskan dengan @AfterSuite akan dijalankan setelah semua ujian di suite telah dijalankan.

@BeforeTest - Kaedah yang dijelaskan dengan @BeforeTest akan dijalankan sebelum kaedah ujian kepunyaan kelas dijalankan.

@AfterTest - Kaedah yang dijelaskan dengan @AfterTest akan dijalankan setelah semua kaedah ujian milik kelas dijalankan.

gaji pemaju java di india

@BebulanKumpulan - Kaedah yang dijelaskan dengan @BebulanKumpulan akan dijalankan sebelum setiap kumpulan dijalankan.

@AfterGroup - Kaedah yang dijelaskan dengan @AfterGroup akan berjalan setelah setiap kumpulan dijalankan.

@BeforeClass - Kaedah yang dijelaskan dengan @BeforeClass akan dijalankan sekali sebelum kaedah ujian pertama di kelas semasa dipanggil.

@Selepas kelas - Kaedah yang dijelaskan dengan @Selepas kelas akan berjalan sekali setelah semua kaedah ujian di kelas semasa telah dijalankan.

@Sebelumnya Kaedah - Kaedah yang dijelaskan dengan @Sebelumnya Kaedah akan dijalankan sebelum sebarang kaedah ujian di dalam kelas dijalankan.

@AfterMetode - Kaedah yang dijelaskan dengan @AfterMetode akan dijalankan setelah setiap kaedah ujian di dalam kelas dijalankan.

@ Ujian - Kaedah yang dijelaskan dengan @ Ujian adalah kaedah ujian utama dalam keseluruhan program. Kaedah anotasi lain akan dilaksanakan di sekitar kaedah ini.

Tangkapan skrin laporan TestNG adalahhadir di bawah: -

Keutamaan

Kami bercakap tentang bagaimana kaedah yang berbeza yang dapat ditentukan sehingga mereka dijalankan di sekitar @ Ujian kaedah. Tetapi, bagaimana jika anda mempunyai lebih daripada satu @ Ujian kaedah dan anda ingin menentukan perintah pelaksanaan antara mereka?

Dalam kes itu, kita bolehPrioritikan mereka dengan memberikan nombor untuk kes ujian yang dilampirkan. Semakin kecil bilangannya, semakin tinggi keutamaannya. Keutamaan dapat ditetapkan sebagai parameter semasa menentukan kes ujian. Tetapi, jika tidak ada keutamaan yang diberikan, maka kaedah ujian beranotasi akan dilaksanakan sesuai urutan ujian abjad. Lihat parameter anotasi ujian di bahagian bawahkod.

@Test (Priority = 2) public static void FirstTest () {system.out.println ('This is the Test Case number Two kerana Priority # 2')} @Test (Priority = 1) public static void SecondTest () { system.out.println ('Ini adalah Kes Kes Ujian Satu kerana Keutamaan # 1')} @Test public static void FinalTest () {system.out.println ('Ini adalah Kes Ujian Akhir kerana tidak ada Keutamaan' )}

Melumpuhkan Kes Ujian

Izinkan saya menunjukkan kepada anda sesuatu yang lebih menarik. Bagaimana jika anda mempunyai kod yang merangkumi sejuta baris, yang terdiri daripada ratusan kes ujian, dan anda hanya mahu melumpuhkan satu kaedah ujian? Anda tidak perlu menghapus bahagian kod mana pun, kita hanya boleh mematikan kaedah ujian itu.

Tindakan melumpuhkan kes ujian juga dilakukan melalui parameter. Kita boleh menetapkan didayakan atribut kepada 'false'. Secara lalai, semua kes ujian akan diaktifkan, oleh itu kami tidak perlu menentukannya setiap kali kami menulis ujian. Lihat parameter kaedah ketiga dan keempat di bahagian bawahkod.

@Test (Priority = 2, enabled = True) public static void FirstTest () {system.out.println ('Ini adalah Ujian Kes nombor dua kerana Prioriti # 2')} @Test (Priority = 1, enabled = True ) public static void SecondTest () {system.out.println ('Ini adalah Ujian Kes nombor satu kerana Keutamaan # 1')} @Test (enabled = false) public static void SkippedTest () {system.out.println ( 'Ini adalah Kes Ujian Langkau kerana ini telah dilumpuhkan')} @Test (diaktifkan = Benar) tidak sah statik FinalTest () {system.out.println ('Ini adalah Kes Ujian Akhir, yang diaktifkan dan tidak mempunyai Keutamaan ')}

Ketergantungan Kaedah

Sekiranya anda mempunyai situasi di mana, anda ingin sekeping kod dilaksanakan hanya jika memenuhi syarat atau hanya jika kaedah tertentu berjaya dilaksanakan, maka kita dapat melakukannya dengan menggunakan bergantungOnMode (). Ini pada dasarnya adalah keadaan ketergantungan kaedah di mana kaedah akan dilaksanakan bergantung pada kaedah lain. Sekiranya kita juga menetapkan selaluJalankan atribut ke true, maka kaedah tersebut akan dijalankan tanpa mengira keadaan gagal / lulus dari kaedah bergantung. Lihat kod di coretan kod di bawah.

@Test public static void FirstTest () {system.out.println ('Ini adalah Kes Ujian pertama yang akan dilaksanakan')} @Test (dependOnMethods = {'FirstTest'}) public static void SecondTest () {system.out. println ('Ini adalah Kes Ujian kedua yang akan dilaksanakan. Ini adalah kaedah Bergantung')} @Test (dependOnMethods = {'SecondTest'}) public static void FinalTest () {system.out.println ('Ini adalah Ujian Akhir Kes itu akan dilaksanakan pula. ')}

Sekarang, ini membawa kita ke aspek penting lain dalam ujiananotasi yang Pengumpulan .

Pengumpulan

Sekarang anda mesti tahu bahawa akan ada beberapa kaedah sebagai sebahagian daripada kes ujian kami dalam kod tersebut. Katakan terdapat 100 kes ujian tetapi, kami ingin melaksanakan hanya 20 kes ujian dalam ujian kami yang seterusnya. Adakah anda fikir kita boleh melakukannya? Pasti kita boleh.

Kita boleh guna kumpulan atribut untuk tujuan ini. Kami dapat memberikan nama kumpulan ke sejumlah kes ujian dan kemudian memilih untuk melaksanakan kumpulan itu dan bukannya keseluruhan kod. Lihat coretan kod di bawah untuk difahamicara membuat kumpulan.

@Test (groups = {'MyGroup'}) public static void FirstTest () {system.out.println ('Ini adalah bahagian Kumpulan: MyGroup')} @Test (groups = {'MyGroup'}) statik awam void SecondTest () {system.out.println ('Ini juga merupakan sebahagian daripada Kumpulan: MyGroup')} @Test public static void ThirdTest () {system.out.println ('Tetapi, ini bukan sebahagian daripada Kumpulan: Kumpulan Saya ')}

Tegasan TestNG

Ini sekarang membawa kita ke topik seterusnya dalam TestNG iaitu penegasan. Seperti namanya, penegasan dapat digunakan dalam kaedah ujian untuk menentukan keadaan lulus / gagal dalam ujian. Berdasarkan keadaan pernyataan yang benar / salah, ujian akan lulus / gagal.

Dalam kod di bawah ini saya telah memasukkan 3 kaedah ujian, di mana kaedah pertama dan ketiga mempunyai keadaan lulus dan kaedah kedua akan mempunyai keadaan gagal. Lihat sendiri kodnya.

pakej testng import org.testng.annotations.Test import org.testng.annotations.BeforeMode import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.Assert import org.testng.annotations.AfterMode penegasan kelas awam {@BeforeMethod public void beforeMethod () {System.setProperty ('webdriver.gecko.driver', 'C: UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe')} boolean awam adalahEqual (int a, int b) {jika (a == b ) {return true} other {return false}} @Test public void testEquality1 () {Assert.assertEquals (true, isEqual (10, 10)) System.out.println ('Ini adalah syarat lulus')} @Test public void testEquality2 () {Assert.assertEquals (true, isEqual (10, 11)) System.out.println ('Ini adalah keadaan yang gagal')} @Test public void getTitle () {WebDriver driver = pemacu FirefoxDriver () baru. get ('https://www.gmail.com') String title = driver.getTitle () Assert.assertEquals (tajuk, 'Gmail') System.out.println ('Ini adalah syarat lulus')} }

Apabila anda melihat laporan yang dihasilkan setelah pelaksanaan ini, anda akan melihat bahawa dari tiga ujian tersebut, satu gagal dan dua lulus. Perkara penting lain yang perlu diperhatikan adalah bahawa apabila penegasan gagal, perintah / baris kod lain dalam ujian itu akan dilangkau. Hanya apabila penegasan berjaya, baris kod seterusnya akan dilaksanakan dalam ujian itu. Lihat output di bawah di mana sistem.out.println telah dilaksanakan hanya untuk kaedah pertama dan ketiga.

1493277977348 geckodriver INFO Mendengarkan pada 127.0.0.1:47035 1493277977993 mozprofile :: profil INFO Menggunakan jalur profil C: UsersVardhanAppDataLocalTemp ust_mozprofile.Z7X9uFdKODvi 1493277977994 geckodriver :: marionetteFoxNox: 8fox: 8foxFox.frefox.frefox.com Menyambung ke Marionette di localhost: 50758 [GPU 6920] PERINGATAN: ralat paip: 109: fail c: / builds / moz2_slave / m-rel-w32-00000000000000000000 / build / src / ipc / chromium / src / chrome / common / ipc_channel_win. cc, talian 346 1493277981742 INFO Marionette Mendengarkan di port 50758 27 Apr 2017 12:56:22 PM org.openqa.selenium.remote.ProtocolHandshake create INFO Sesi: Dialek yang dikesan: W3C Ini sekali lagi keadaan lulus Ini adalah syarat lulus LULUS: getTitle LULUS: testEquality1 GAGAL: testEquality2 java.lang.AssertionError: dijangka [false] tetapi dijumpai [benar] di org.testng.Assert.fail (Assert.java:93) di org.testng.Assert.failNotEquals (Assert.java: 512) di org.testng.Assert.assertE qualsImpl (Assert.java[34) di org.testng.Assert.assertEquals (Assert.java[15) di org.testng.Assert.assertEquals (Assert.java:304) di org.testng.Assert.assertEquals (Assert.java : 314) di testng.Assertions.testEquality2 (Assertions.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Kaedah Asli) di sun.reflect.NativeMethodAccessorImpl.invoke (Sumber Tidak Diketahui) di sun.reflect.DelegatingM metodeAccessorIccess. Sumber) di java.lang.reflect.Method.invoke (Sumber Tidak Diketahui) di org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) di org.testng.internal.Invoker.invokeMethod (Invoker.java:661) di org.testng.internal.Invoker.invokeTestMethod (Invoker.java:869) di org.testng.internal.Invoker.invokeTestMethods (Invoker.java : 1919) di org.testng.internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java ) di org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) di org.testng.TestRunner.privateRun (TestRunner.java:744) di org.testng.TestRu nner.run (TestRunner.java:602) di org.testng.SuiteRunner.runTest (SuiteRunner.java:380) di org.testng.SuiteRunner.runSecara itu (SuiteRunner.java:375) di org.testng.SuiteRunner.privateRun (SuiteRunner .java: 340) di org.testng.SuiteRunner.run (SuiteRunner.java: 239) di org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) di org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java) di org.testng.TestNG.runSuitesSecukupnya (TestNG.java : 1301) di org.testng.TestNG.runSuitesLocally (TestNG.java[226) di org.testng.TestNG.runSuites (TestNG.java: 144) di org.testng. TestNG.run (TestNG.java : 1115) di org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java : 32) di org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java: 2330) di org.testng. .RemoteTestNG.main (RemoteTestNG.java:76) ======================================= ======== Ujian lalai Ujian dijalankan: 3, Kegagalan: 1, Langkau: 0 ============================ =================== =============================== ================ Set lalai Jumlah ujian dijalankan: 3, Kegagalan: 1, Langkau: 0 =================================== ============

Jadi, itulah akhir konsep yang berkaitan dengan pengurusan kes ujian. Kami tinggal dengan satu topik lagi, dan itu adalah penghasilan laporan. Penjanaan laporan adalah topik terakhir dalam tutorial Selenium WebDriver ini kerana laporan dapat dihasilkan hanya setelah semuaujian dijalankan.

klausa penyatuan digunakan untuk

Penjanaan Laporan

Perkara paling penting yang perlu anda perhatikan ialah laporan hanya akan dibuat melalui fail .xml. Ini bermaksud, sama ada kaedah, atau kelas, atau kumpulan yang ingin anda uji, semuanya harus ditentukan dalam fail .xml.

Jadi pertama anda boleh membuat folder baru di bawah projek anda, dan membuat fail baru di dalam folder itu dan memberikan nama pada fail tersebut dan menyimpannya dengan sambungan .xml. Anda boleh membuat folder dan fail baru dengan mengklik kanan pada penjelajah pakej. Setelah anda membuat fail, pergi ke tab sumber dari bahagian bawah tetingkap dan masukkan konfigurasi seperti yang dinyatakan dalam coretan di bawah.

 

Baris pertama ialah definisi jenis dokumen XML. Ini adalah standard dan wajib untuk semua laporan ujian. Tetapi, garis lain cukup jelas. Saya telah menggunakan tag terbuka untuk suite, ujian, kelas dan kelas. Tag kelas boleh mempunyai satu atau lebih kelas di dalamnya. Oleh itu, ia dapat digunakan jika kita ingin menghasilkan laporan di mana kita menguji beberapa kelas. Ini berguna terutamanya untuk pembangun yang ingin menguji sekeping kod yang panjang.

Bagaimanapun, kembali ke laporan kami, anda boleh menamakan setiap suite atau ujian atau kelas setelah membuka tag tersebut dan ingat untuk menutup setiap teg yang anda buka. Saya telah memberikan nama suite saya sebagai UjianNG , nama ujian sebagai Uji Anotasi dan nama kelas sebagai testng.TestAnnotasi. Perhatikan bahawa nama kelas dalam format ' packagename.classname ’ .

Apabila anda menjalankan fail ini sebagai TestNG suite, pelaksanaan akan bermula dan anda akan mendapat laporan ujian terperinci. Anda akan mendapat output ujian di tab konsol anda dan hasil dari set ujian di tab seterusnya. Laporan yang saya hasilkan untuk melaksanakan kod saya adalahdalamtangkapan skrin di bawah. Anda akan melihat bahawa kali ini, ada nama suite, nama ujian, nama kelas bersama dengan masa yang diperlukan untuk melaksanakan masing-masing.

Sekiranya anda ingin melihat laporan HTML (Laporan indeks atau Laporan yang tersedia), anda boleh pergi ke ujian-output folder di dalam direktori projek di ruang kerja anda. Dengan mengkliknya, anda dapat melihat laporannya walaupun pada satu waktu kemudian. Berikut adalah tangkapan skrin mereka.

Laporan Indeks : -

Laporan yang tersedia : -

Jadi itu membawa kita ke akhir blog tutorial Selenium WebDriver ini. Inilah masanya untuk anda menyiapkan gerhana di hujung anda, memasang pelbagai pakej Selenium, memasang TestNG dan memulakan dengan menulis kes ujian anda.

Anda boleh melihat video tutorial Selenium WebDriver di bawah ini untuk menyaksikan demonstrasi pelbagai konsep yang dijelaskan dalam blog ini.

Latihan Selenium | Kerangka TestNG Untuk Selenium | Edureka

Video Latihan Selenium Edureka ini akan membawa anda mengetahui perincian mendalam mengenai Selenium WebDriver. Video tutorial Selenium ini sangat sesuai untuk pemula dan profesional yang ingin mengetahui asas perintah WebDriver dan belajar bagaimana TestNG dapat digunakan dengan Selenium untuk menguruskan pelbagai kes ujian.

Sekiranya anda ingin belajar Selenium dan membina karier dalam domain ujian, maka periksa interaktif kami secara langsung dalam talian di sini, disertakan dengan sokongan 24 * 7 untuk membimbing anda sepanjang tempoh pembelajaran anda.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.