TestNG การกวดวิชา
ความหมายของ TestNG?
TestNG เป็นกรอบการทดสอบระบบอัตโนมัติซึ่ง NG ย่อมาจาก “Next Generation” TestNG ได้รับแรงบันดาลใจจาก JUnit ซึ่งใช้คำอธิบายประกอบ (@) TestNG เอาชนะข้อเสียของ JUnit และถูกออกแบบมาเพื่อให้ การทดสอบแบบ end-to-end ง่าย.
การใช้ TestNGคุณสามารถสร้างรายงานที่เหมาะสมได้ และคุณสามารถทราบได้อย่างง่ายดายว่ามีกรณีการทดสอบใดบ้างที่ผ่าน ล้มเหลว และข้ามไป คุณสามารถดำเนินการกรณีทดสอบที่ล้มเหลวแยกกันได้
ตัวอย่างเช่น:
- สมมติว่าคุณมีกรณีทดสอบ 5 กรณี โดยเขียนวิธีหนึ่งสำหรับแต่ละกรณีทดสอบ (สมมติว่าโปรแกรมเขียนโดยใช้วิธีหลักโดยไม่ใช้ testNG) เมื่อคุณรันโปรแกรมนี้ก่อน วิธีสามวิธีจะถูกดำเนินการสำเร็จ และวิธีที่สี่จะล้มเหลว จากนั้นแก้ไขข้อผิดพลาดที่มีอยู่ในวิธีที่สี่ ตอนนี้คุณต้องการรันเฉพาะวิธีที่สี่เท่านั้น เนื่องจากวิธีสามวิธีแรกถูกดำเนินการสำเร็จอยู่แล้ว ซึ่งไม่สามารถทำได้หากไม่ได้ใช้ TestNG.
- เค้ก TestNG in Selenium ให้ตัวเลือก เช่น ไฟล์ testng-failed.xml ในโฟลเดอร์ test-output หากคุณต้องการรันเฉพาะกรณีทดสอบที่ล้มเหลว หมายความว่าคุณต้องรันไฟล์ XML นี้ ไฟล์นี้จะดำเนินการเฉพาะกรณีทดสอบที่ล้มเหลวเท่านั้น
นอกจากแนวคิดข้างต้นแล้ว คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ TestNGเช่นข้อดีของอะไร TestNGวิธีการสร้างวิธีการทดสอบโดยใช้คำอธิบายประกอบ @test วิธีการแปลงคลาสเหล่านี้ให้เป็นไฟล์ชุดการทดสอบ และดำเนินการผ่าน Eclipse รวมถึงจากบรรทัดคำสั่ง
ทำไมต้องใช้ TestNG สีสดสวย Selenium?
ค่าเริ่มต้น Selenium การทดสอบไม่ได้สร้างรูปแบบที่เหมาะสมสำหรับผลการทดสอบ โดยใช้ TestNG in Seleniumเราสามารถสร้างผลการทดสอบได้
ส่วนมาก Selenium ผู้ใช้ใช้สิ่งนี้มากกว่า จูนิต เพราะข้อดีของมัน มีคุณสมบัติมากมายของ TestNGแต่เราจะเน้นเฉพาะส่วนที่สำคัญที่สุดที่เราสามารถใช้ได้เท่านั้น Selenium. ต่อไปนี้คือคุณสมบัติหลักของ Selenium TestNG:
- สร้างรายงานในรูปแบบที่เหมาะสม รวมถึงจำนวนกรณีทดสอบที่รัน จำนวนกรณีทดสอบที่ผ่าน จำนวนกรณีทดสอบที่ล้มเหลว และจำนวนกรณีทดสอบที่ข้ามไป
- สามารถจัดกลุ่มกรณีทดสอบหลายกรณีได้ง่ายขึ้นโดยแปลงเป็นไฟล์ testng.xml ซึ่งคุณสามารถกำหนดลำดับความสำคัญว่าควรดำเนินการกรณีทดสอบใดก่อน
- กรณีทดสอบเดียวกันสามารถดำเนินการได้หลายครั้งโดยไม่มีการวนซ้ำเพียงแค่ใช้คำสำคัญที่เรียกว่า 'จำนวนคำขอ'
- การใช้ testng ช่วยให้คุณสามารถดำเนินการทดสอบหลายกรณีบนเบราว์เซอร์หลายตัว เช่น cross การทดสอบเบราว์เซอร์.
- เค้ก TestNG กรอบงานสามารถรวมเข้ากับเครื่องมือต่างๆ เช่น TestNG มาเวน, เจนกินส์ ฯลฯ
- คำอธิบายประกอบที่ใช้ในการทดสอบนั้นง่ายต่อการเข้าใจ เช่น @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest
- WebDriver ไม่มีกลไกดั้งเดิมสำหรับการสร้างรายงาน TestNG สามารถสร้างรายงานในรูปแบบที่สามารถอ่านได้เหมือนที่แสดงด้านล่างนี้ได้
- TestNG ลดความซับซ้อนของวิธีการเข้ารหัสการทดสอบ การทดสอบของเราไม่จำเป็นต้องใช้วิธีหลักแบบคงที่อีกต่อไป ลำดับของการดำเนินการได้รับการควบคุมโดยคำอธิบายประกอบที่เข้าใจง่ายซึ่งไม่จำเป็นต้องใช้วิธีการคงที่
- ข้อยกเว้นที่ไม่ถูกตรวจจับจะถูกจัดการโดยอัตโนมัติ TestNG โดยไม่ยุติการทดสอบก่อนเวลาอันควร ข้อยกเว้นเหล่านี้ถูกรายงานเป็นขั้นตอนที่ล้มเหลวในรายงาน
ข้อดีของการ TestNG เกินกว่า JUnit
มีข้อดีที่สำคัญสามประการคือ TestNG เกินกว่า JUnit:
- คำอธิบายประกอบจะเข้าใจง่ายกว่า
- กรณีทดสอบสามารถจัดกลุ่มได้ง่ายขึ้น
- สามารถทดสอบแบบขนานได้
คำอธิบายประกอบใน .คืออะไร TestNG?
คำอธิบายประกอบใน TestNG เป็นบรรทัดของโค้ดที่สามารถควบคุมวิธีดำเนินการวิธีการด้านล่างได้- โดยจะมีสัญลักษณ์ @ นำหน้าเสมอ เร็วและเร็วมาก TestNG ตัวอย่างคือตัวอย่างที่แสดงด้านล่าง
คำอธิบายประกอบจะมีการกล่าวถึงในภายหลังในหัวข้อ "คำอธิบายประกอบที่ใช้ใน TestNG”ดังนั้นจึงไม่เป็นไรหากคุณไม่เข้าใจสิ่งที่กล่าวมาข้างต้น TestNG ตัวอย่างเมื่อกี้เลย สิ่งสำคัญที่ควรทราบในตอนนี้คือมีคำอธิบายประกอบอยู่ TestNG เขียนโค้ดและเข้าใจง่ายกว่าใน JUnit.
ความสามารถในการรันการทดสอบแบบขนานนั้นมีอยู่ใน TestNG แต่ไม่เข้า JUnitดังนั้น TestNG กรอบงานเป็นที่ต้องการมากกว่าสำหรับผู้ทดสอบที่ใช้ Selenium กริด.
วิธีเขียนกรณีทดสอบในรูปแบบ TestNG?
ขั้นตอน 1) เขียนตรรกะทางธุรกิจของคุณและแทรก TestNG คำอธิบายประกอบในรหัสของคุณ
ขั้นตอน 2) เพิ่มข้อมูลเพิ่มเติม เช่น ชื่อคลาส ชื่อกลุ่ม ชื่อแพ็คเกจ ฯลฯ
ขั้นตอน 3) เรียกใช้ TestNG.
สร้างกรณีทดสอบโดยใช้ TestNG คำอธิบายประกอบ
ตอนนี้เราจะเรียนรู้วิธีสร้างกรณีทดสอบแรกของเราโดยใช้ TestNG คำอธิบายประกอบใน Selenium:
ก่อนที่เราจะสร้างกรณีทดสอบ เราควรตั้งค่าใหม่ก่อน TestNG โครงการใน Eclipse และตั้งชื่อว่า “ก่อนอื่น”TestNGโครงการ".
ตั้งค่าใหม่ TestNG โครงการ
ขั้นตอนที่ 1: คลิก ไฟล์ > ใหม่ > Java โครงการ
ขั้นตอนที่ 2: พิมพ์ “ก่อนTestNGโครงการ” เป็นชื่อโครงการ จากนั้นคลิกถัดไป
ขั้นตอนที่ 3: ตอนนี้เราจะเริ่มนำเข้า TestNG ห้องสมุดเข้าสู่โครงการของเรา คลิกที่แท็บ "ห้องสมุด" จากนั้น "เพิ่มห้องสมุด..."
ขั้นตอนที่ 4: ในกล่องโต้ตอบเพิ่มไลบรารี ให้เลือก “TestNG” และคลิกถัดไป
ขั้นตอนที่ 5: คลิกเสร็จสิ้น
คุณควรสังเกตว่า TestNG รวมอยู่ในรายการห้องสมุด
ขั้นตอนที่ 6: ตอนนี้เราจะเพิ่มไฟล์ JAR ที่มีนามสกุล Selenium เอพีไอ ไฟล์เหล่านี้พบได้ใน Java ไดรเวอร์ไคลเอ็นต์ที่เราดาวน์โหลดมา https://www.selenium.dev/downloads/ ตอนที่เรากำลังติดตั้ง Selenium และ Eclipse ในบทก่อนหน้า
จากนั้นนำทางไปยังตำแหน่งที่คุณวางไว้ Selenium ไฟล์ JAR
หลังจากเพิ่ม JAR ภายนอกแล้ว หน้าจอของคุณควรมีลักษณะเช่นนี้
ขั้นตอนที่ 7: คลิกเสร็จสิ้นและตรวจสอบว่าเป็นอันดับแรกของเราTestNGสามารถดูโครงการได้ที่ Eclipseหน้าต่าง Package Explorer ของ
วิธีการสร้างใหม่ TestNG ไฟล์ทดสอบ
ตอนนี้เราได้เสร็จสิ้นการตั้งค่าโครงการของเราในเรื่องนี้แล้ว TestNG กวดวิชาให้เราสร้างใหม่ TestNG ไฟล์
ขั้นตอนที่ 1: คลิกที่ 'src' และเลือกอื่น ๆ
คลิกขวาที่โฟลเดอร์แพ็คเกจ “src” จากนั้นเลือก New > Other...
ขั้นตอนที่ 2: เลือก TestNG ชั้นเรียน
คลิกที่ TestNG โฟลเดอร์แล้วเลือก “TestNG ตัวเลือกคลาส” คลิกถัดไป
ขั้นตอนที่ 3: พิมพ์ค่า
พิมพ์ค่าที่ระบุไว้ด้านล่างลงในช่องป้อนข้อมูลที่เหมาะสมแล้วคลิกเสร็จสิ้น สังเกตว่าเราได้ตั้งชื่อไฟล์ของเรา Java ไฟล์เป็น “FirstTestNGไฟล์".
ขั้นตอนที่ 4: สร้างเทมเพลตแล้ว
Eclipse ควรสร้างเทมเพลตให้เราโดยอัตโนมัติ TestNG ไฟล์ที่แสดงด้านล่าง
การเข้ารหัสครั้งแรกของเรา TestNG ตัวอย่างกรณีทดสอบ
ให้เราสร้างของเราก่อน กรณีทดสอบ ที่จะตรวจสอบว่า Mercury หน้าแรกของทัวร์ถูกต้อง พิมพ์รหัสของคุณตามที่แสดงด้านล่าง TestNG ตัวอย่าง:
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; public class firsttestngfile { public String baseUrl = "https://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver ; @Test public void verifyHomepageTitle() { System.out.println("launching firefox browser"); System.setProperty("webdriver.gecko.driver", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); driver.close(); } }
ให้สังเกตสิ่งต่อไปนี้
- TestNG ไม่ต้องการให้คุณมีวิธี main()
- วิธีการไม่จำเป็นต้องคงที่
- เราใช้คำอธิบายประกอบ @Test @Test ใช้เพื่อบอกว่าวิธีการภายใต้นั้นเป็นกรณีทดสอบ- ในกรณีนี้ เราได้ตั้งค่าเมธอด VerifyHomepageTitle() ให้เป็นกรณีทดสอบของเรา ดังนั้นเราจึงวางคำอธิบายประกอบ '@Test' ไว้ด้านบน
- เนื่องจากเราใช้คำอธิบายประกอบใน TestNGเราจำเป็นต้องนำเข้าแพ็กเกจ org.testng.annotations.*
- เราใช้คลาส Assert คลาส Assert ใช้เพื่อดำเนินการตรวจสอบใน TestNGในการใช้ เราจำเป็นต้องนำเข้าแพ็กเกจ org.testng.Assert
คุณอาจมีกรณีทดสอบหลายกรณี (ดังนั้นจึงมีคำอธิบายประกอบ @Test หลายรายการ) ในที่เดียว TestNG ไฟล์ ซึ่งจะกล่าวถึงรายละเอียดเพิ่มเติมในภายหลังในหัวข้อ “คำอธิบายประกอบที่ใช้ใน TestNG".
เรียกใช้การทดสอบ
หากต้องการรันการทดสอบ เพียงเรียกใช้ไฟล์ใน Eclipse ตามปกติ Eclipse จะให้เอาต์พุตสองรายการ - หนึ่งรายการในหน้าต่างคอนโซลและอีกรายการบน TestNG หน้าต่างผลลัพธ์
ตรวจสอบรายงานที่สร้างโดย TestNG
หน้าต่างคอนโซลใน Eclipse ให้รายงานผลการทดสอบกรณีทดสอบของเราในรูปแบบข้อความในขณะที่ TestNG หน้าต่างผลลัพธ์จะให้ผลลัพธ์แบบกราฟิกแก่เรา
การสร้างรายงาน HTML
TestNG มีความสามารถในการสร้างรายงานในรูปแบบ HTML
ขั้นตอนที่ 1: หลังจากรันครั้งแรกของเราTestNGไฟล์ที่เราสร้างในส่วนที่แล้ว คลิกขวาที่ชื่อโครงการ (FirstTestNGProject) ในหน้าต่าง Project Explorer จากนั้นคลิกที่ตัวเลือก "รีเฟรช"
ขั้นตอนที่ 2: โปรดสังเกตว่ามีการสร้างโฟลเดอร์ "test-output" ขยายและค้นหาไฟล์ index.html ไฟล์ HTML นี้เป็นรายงานผลการทดสอบครั้งล่าสุด
ขั้นตอนที่ 3: Double- คลิกที่ไฟล์ index.html นั้นเพื่อเปิดไฟล์ภายใน Eclipseเว็บเบราว์เซอร์ในตัว คุณสามารถรีเฟรชหน้านี้ได้ตลอดเวลาหลังจากที่คุณทำการทดสอบอีกครั้งโดยเพียงแค่กด F5 เช่นเดียวกับในเว็บเบราว์เซอร์ทั่วไป
คำอธิบายประกอบที่ใช้ใน TestNG
ในส่วนก่อนหน้านี้ คุณได้รู้จักกับคำอธิบายประกอบ @Test แล้ว ตอนนี้ เราจะศึกษาคำอธิบายประกอบขั้นสูงและการใช้งานของมัน
กรณีทดสอบหลายกรณี
เราสามารถใช้คำอธิบายประกอบ @Test หลายรายการในที่เดียวได้ TestNG ไฟล์. ตามค่าเริ่มต้น วิธีการที่มีคำอธิบายประกอบโดย @Test จะดำเนินการตามตัวอักษร ดูรหัสด้านล่าง แม้ว่าเมธอด c_test, a_test และ b_test จะไม่ถูกจัดเรียงตามตัวอักษรในโค้ด แต่เมธอดเหล่านั้นจะถูกดำเนินการเช่นนี้
เรียกใช้โค้ดนี้และในหน้า index.html ที่สร้างขึ้น ให้คลิก "มุมมองตามลำดับเวลา"
พารามิเตอร์
หากคุณต้องการให้วิธีการดำเนินการในลำดับอื่น ให้ใช้พารามิเตอร์ "ลำดับความสำคัญ" พารามิเตอร์คือคีย์เวิร์ดที่แก้ไขฟังก์ชันของคำอธิบายประกอบ.
- พารามิเตอร์ต้องการให้คุณกำหนดค่าให้กับพารามิเตอร์เหล่านั้น คุณทำได้โดยการวาง “=” ไว้ข้างๆ แล้วตามด้วยค่า
- พารามิเตอร์จะอยู่ในวงเล็บคู่หนึ่งซึ่งวางไว้หลังคำอธิบายประกอบเหมือนกับข้อมูลโค้ดที่แสดงด้านล่าง
TestNG จะดำเนินการคำอธิบายประกอบ @Test ด้วยค่าลำดับความสำคัญต่ำสุดจนถึงค่าที่ใหญ่ที่สุด ไม่จำเป็นต้องให้ค่าลำดับความสำคัญของคุณต้องต่อเนื่องกัน
เค้ก TestNG รายงาน HTML จะยืนยันว่าวิธีการต่างๆ ถูกดำเนินการตามค่าลำดับความสำคัญจากน้อยไปมาก
พารามิเตอร์หลายตัว
นอกเหนือจาก “ลำดับความสำคัญ” @Test ยังมีพารามิเตอร์อื่นที่เรียกว่า “alwaysRun” ซึ่งสามารถตั้งค่าเป็น “true” หรือ “false” เท่านั้น หากต้องการใช้พารามิเตอร์ตั้งแต่ 2 ตัวขึ้นไปในคำอธิบายประกอบเดียว ให้คั่นด้วยเครื่องหมายจุลภาค เช่นที่แสดงด้านล่าง
@Test(priority = 0, alwaysRun = true)
@BeforeTest และ @AfterTest
@ก่อนสอบ | วิธีการภายใต้คำอธิบายประกอบนี้จะถูกดำเนินการ ก่อนการทดสอบครั้งแรกใน TestNG ไฟล์. |
@หลังทดสอบ | วิธีการภายใต้คำอธิบายประกอบนี้จะถูกดำเนินการ หลังจากกรณีทดสอบทั้งหมดใน TestNG ไฟล์ถูกดำเนินการ. |
พิจารณารหัสด้านล่าง
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; public class firsttestngfile { public String baseUrl = "https://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver ; @BeforeTest public void launchBrowser() { System.out.println("launching firefox browser"); System.setProperty("webdriver.gecko.driver", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); } @Test public void verifyHomepageTitle() { String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); } @AfterTest public void terminateBrowser(){ driver.close(); } }
การใช้ตรรกะที่นำเสนอโดยตารางและโค้ดด้านบน เราสามารถคาดการณ์ได้ว่าลำดับที่วิธีการจะดำเนินการคือ:
- 1st – เปิดตัวเบราว์เซอร์ ()
- 2nd – ตรวจสอบชื่อหน้าแรก()
- 3rd – ยุติเบราว์เซอร์()
ตำแหน่งของบล็อกคำอธิบายประกอบสามารถสับเปลี่ยนกันได้โดยไม่กระทบต่อลำดับเวลาที่จะดำเนินการ- มาทำความเข้าใจกับก TestNG ตัวอย่างและพยายามจัดเรียงบล็อกคำอธิบายประกอบใหม่เพื่อให้โค้ดของคุณมีลักษณะคล้ายกับบล็อกด้านล่าง
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; public class firsttestngfile { public String baseUrl = "https://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver ; @AfterTest //Jumbled public void terminateBrowser(){ driver.close(); } @BeforeTest //Jumbled public void launchBrowser() { System.out.println("launching firefox browser"); System.setProperty("webdriver.gecko.driver", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); } @Test //Jumbled public void verifyHomepageTitle() { String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); } }
เรียกใช้โค้ดด้านบนแล้วสังเกตว่า
@BeforeMethod และ @AfterMethod
@ก่อนวิธีการ | วิธีการภายใต้คำอธิบายประกอบนี้จะถูกดำเนินการ ก่อนแต่ละวิธีในแต่ละกรณีทดสอบ. |
@AfterMethod | วิธีการภายใต้คำอธิบายประกอบนี้จะถูกดำเนินการ หลังจากแต่ละวิธีในแต่ละกรณีทดสอบ |
In Mercury ทัวร์สมมติว่าเราต้องการตรวจสอบชื่อเรื่องของหน้าเป้าหมายของทั้งสองลิงค์ด้านล่าง
การไหลของการทดสอบของเราจะเป็น:
- ไปที่หน้าแรกและตรวจสอบชื่อ
- คลิกลงทะเบียนและตรวจสอบชื่อของหน้าเป้าหมาย
- กลับไปที่หน้าแรกและตรวจสอบว่ายังมีชื่อที่ถูกต้องหรือไม่
- คลิก SUPPORT และตรวจสอบชื่อของเพจเป้าหมาย
- กลับไปที่หน้าแรกและตรวจสอบว่ายังมีชื่อที่ถูกต้องหรือไม่
รหัสด้านล่างแสดงให้เห็นว่า @BeforeMethod และ @AfterMethod ถูกใช้อย่างไรเพื่อดำเนินการสถานการณ์ที่กล่าวถึงข้างต้นอย่างมีประสิทธิภาพ
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; @Test public class firsttestngfile { public String baseUrl = "https://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver; public String expected = null; public String actual = null; @BeforeTest public void launchBrowser() { System.out.println("launching firefox browser"); System.setProperty("webdriver.gecko.driver", driverPath); driver= new FirefoxDriver(); driver.get(baseUrl); } @BeforeMethod public void verifyHomepageTitle() { String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); } @Test(priority = 0) public void register(){ driver.findElement(By.linkText("REGISTER")).click() ; expected = "Register: Mercury Tours"; actual = driver.getTitle(); Assert.assertEquals(actual, expected); } @Test(priority = 1) public void support() { driver.findElement(By.linkText("SUPPORT")).click() ; expected = "Under Construction: Mercury Tours"; actual = driver.getTitle(); Assert.assertEquals(actual, expected); } @AfterMethod public void goBackToHomepage ( ) { driver.findElement(By.linkText("Home")).click() ; } @AfterTest public void terminateBrowser(){ driver.close(); } }
หลังจากดำเนินการทดสอบนี้แล้ว TestNG ควรรายงานตามลำดับดังต่อไปนี้
พูดง่ายๆ ก็คือ @BeforeMethod ควรมีวิธีการที่คุณต้องการเรียกใช้ ก่อน แต่ละกรณีทดสอบในขณะที่ @AfterMethod ควรมีวิธีการที่คุณต้องเรียกใช้ หลังจาก แต่ละกรณีทดสอบ
สรุปสาระสำคัญของ TestNG คำอธิบายประกอบ
@บีฟอร์สวีท: วิธีการทำหมายเหตุประกอบจะถูกเรียกใช้ก่อนที่การทดสอบทั้งหมดในชุดนี้จะทำงาน
@อาฟเตอร์สวีท: วิธีการใส่คำอธิบายประกอบจะถูกเรียกใช้หลังจากการทดสอบทั้งหมดในชุดนี้ทำงานแล้ว
@ก่อนสอบ: วิธีที่มีคำอธิบายประกอบจะถูกรันก่อนที่จะรันวิธีทดสอบใดๆ ที่เป็นของคลาสภายในแท็ก
@หลังทดสอบ: วิธีการทำหมายเหตุประกอบจะถูกรันหลังจากที่วิธีทดสอบทั้งหมดที่เป็นของคลาสภายในแท็กได้ทำงานแล้ว
@BeforeGroups.: รายชื่อกลุ่มที่วิธีการกำหนดค่านี้จะทำงานก่อน รับประกันว่าวิธีนี้จะทำงานได้ไม่นานก่อนที่จะเรียกใช้วิธีทดสอบแรกที่เป็นของกลุ่มใดๆ เหล่านี้
@อาฟเตอร์กรุ๊ป: รายการกลุ่มที่จะเรียกใช้วิธีการกำหนดค่านี้ รับประกันว่าวิธีนี้จะทำงานได้ไม่นานหลังจากเรียกใช้วิธีทดสอบสุดท้ายที่เป็นของกลุ่มใดๆ เหล่านี้
@บีฟอร์คลาส: วิธีการทำหมายเหตุประกอบจะถูกรันก่อนที่จะเรียกใช้วิธีทดสอบแรกในคลาสปัจจุบัน
@หลังเลิกเรียน: วิธีการทำหมายเหตุประกอบจะถูกรันหลังจากรันวิธีทดสอบทั้งหมดในคลาสปัจจุบันแล้ว
@ก่อนวิธีการ: วิธีการทำหมายเหตุประกอบจะถูกรันก่อนวิธีทดสอบแต่ละวิธี
@AfterMethod: วิธีการใส่คำอธิบายประกอบจะทำงานหลังจากวิธีทดสอบแต่ละวิธี
@ทดสอบ: วิธีการใส่คำอธิบายประกอบเป็นส่วนหนึ่งของกรณีทดสอบ
สรุป
- TestNG คือ การทดสอบ กรอบที่สามารถทำได้ Selenium ทดสอบให้เข้าใจง่ายขึ้นและสร้างรายงานที่เข้าใจง่าย
- ข้อได้เปรียบหลักของ TestNG เกินกว่า JUnit มีดังต่อไปนี้
- คำอธิบายประกอบใช้งานง่ายและเข้าใจง่ายกว่า
- กรณีทดสอบสามารถจัดกลุ่มได้ง่ายขึ้น
- TestNG ช่วยให้เราสามารถสร้าง การทดสอบแบบขนาน.
- หน้าต่างคอนโซลใน Eclipse สร้างผลลัพธ์ตามข้อความในขณะที่ TestNG หน้าต่างมีประโยชน์มากกว่าเพราะให้ผลลัพธ์การทดสอบในรูปแบบกราฟิกพร้อมรายละเอียดที่สำคัญอื่น ๆ เช่น:
- รันไทม์ของแต่ละวิธี
- ลำดับเวลาที่ใช้วิธีดำเนินการ
- TestNG สามารถสร้างรายงานที่ใช้ HTML ได้
- คำอธิบายประกอบสามารถใช้พารามิเตอร์ได้เหมือนปกติ Java TestNG วิธีการ
- TestNG Dataprovider คือวิธีการส่งพารามิเตอร์ไปยังฟังก์ชันทดสอบซึ่งจะส่งผ่านค่าต่างๆ ในกรณีทดสอบในการดำเนินการครั้งเดียว