คำถามและคำตอบสัมภาษณ์ TestNG 19 อันดับแรก (2025)
ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ TestNG สำหรับนักศึกษาใหม่และผู้สมัครที่มีประสบการณ์เพื่อให้ได้งานในฝัน
1) TestNG คืออะไร
TestNG เป็นกรอบการทดสอบโอเพ่นซอร์สอัตโนมัติ มันขึ้นอยู่กับเฟรมเวิร์ก JUnit แต่ไม่ใช่ส่วนขยาย JUnit
ดาวน์โหลดไฟล์ PDF ฟรี: คำถามสัมภาษณ์ TestNG
2) คุณสมบัติ TestNG คืออะไร?
คุณสมบัติ TestNG ได้แก่
- TestNG ใช้คุณสมบัติ OO (เชิงวัตถุ) และ Java มากกว่า
- รองรับการทดสอบคลาสรวม
- รองรับคำอธิบายประกอบที่แตกต่างกัน
- แยกโค้ดทดสอบเวลาคอมไพล์ออกจากข้อมูลข้อมูล / การกำหนดค่ารันไทม์
- การกำหนดค่ารันไทม์มีความยืดหยุ่น
- ปลั๊กอินที่ยืดหยุ่น API
- เพื่อความยืดหยุ่นที่มากขึ้น BeanShell จึงถูกฝังไว้
- รองรับการทดสอบซีลีเนียมแบบมัลติเธรด
- รองรับการทดสอบแบบขนาน การทดสอบโหลด ความล้มเหลวบางส่วน วิธีการทดสอบแบบขึ้นต่อกัน
- หลังจากรวบรวมการทดสอบแล้ว คุณสามารถส่งคำขอไปยัง TestNG เพื่อรันการทดสอบ "ส่วนหน้า" ทั้งหมดหรือ "ช้า" "เร็ว" "ฐานข้อมูล"
- สำหรับคลาสการทดสอบเดียวกัน TestNG รองรับหลายอินสแตนซ์
- สำหรับการบันทึก ไม่มีการขึ้นต่อกัน ฟังก์ชัน JDK เริ่มต้นสำหรับการบันทึกและรันไทม์
3) แสดงรายการข้อดีของ TestNG เหนือ Junit?
ข้อดีของ TestNG บน JUnit ได้แก่
- เมื่อเปรียบเทียบกับคำอธิบายประกอบ JUnit แล้ว TestNG นั้นเข้าใจง่าย
- ต่างจาก JUnit ตรงที่ TestNG ไม่จำเป็นต้องประกาศ @Before Class และ @After Class
- ไม่มีข้อจำกัดชื่อวิธีการใน TestNG
- TestNG ช่วยให้คุณสามารถจัดกลุ่มกรณีทดสอบได้อย่างง่ายดาย ซึ่งไม่สามารถทำได้ใน JUnit
- TestNG รองรับการตั้งค่าเพิ่มเติมสามรายการต่อไปนี้: @Before/After Suite, @Before/After Test และ @Before/After Group
- TestNG ไม่จำเป็นต้องขยายคลาสใดๆ
- ใน TestNG คุณสามารถรันกรณีทดสอบไดรเวอร์เว็บซีลีเนียมพร้อมกันได้
- ขึ้นอยู่กับกลุ่ม TestNG ช่วยให้คุณสามารถดำเนินการกรณีทดสอบได้
- TestNG ช่วยให้คุณสามารถกำหนดกรณีทดสอบที่ต้องพึ่งพาได้ แต่ละกรณีทดสอบจะเป็นอิสระจากกรณีทดสอบอื่น
4) ขั้นตอนพื้นฐานที่จำเป็นในการเขียนการทดสอบ TestNG คืออะไร?
ขั้นตอนพื้นฐานที่จำเป็นในการเขียน TestNG ประกอบด้วย
- จดตรรกะทางธุรกิจของการทดสอบของคุณและแทรกคำอธิบายประกอบ TestNG ลงในโค้ดของคุณ
- ในการก่อสร้างXML หรือการทดสอบ.xml ให้เพิ่มข้อมูลเกี่ยวกับการทดสอบของคุณ
- เรียกใช้ TestNG
5) ระบุวิธีต่างๆ ที่สามารถเรียกใช้ TestNG ได้
TestNG สามารถเรียกใช้ได้หลายวิธีเช่น
- การใช้ คราส
- มีมด
- จากบรรทัดคำสั่ง
- ใช้ IDEA ของ IntelliJ
6) อธิบายการใช้ไฟล์ testng.xml
ไฟล์ Testing.xml บันทึกการทดสอบทั้งหมดของคุณในรูปแบบ XML ไฟล์นี้ทำให้ง่ายต่อการกำหนดชุดการทดสอบและพารามิเตอร์ทั้งหมดไว้ในไฟล์เดียว ซึ่งคุณสามารถตรวจสอบได้ในที่เก็บโค้ดหรือส่งอีเมลถึงเพื่อนร่วมงาน นอกจากนี้ยังช่วยให้ดึงชุดย่อยของการทดสอบออกหรือแยกการกำหนดค่ารันไทม์หลายรายการได้อย่างง่ายดาย
7) ใน TestNG คุณจะปิดการใช้งานการทดสอบได้อย่างไร?
หากต้องการปิดใช้งานกรณีทดสอบที่คุณไม่ต้องการ คุณสามารถใช้คำอธิบายประกอบ @Test(enabled = false)
8) การทดสอบการหมดเวลาใน TestNG คืออะไร?
การทดสอบการหมดเวลาใน TestNG เป็นเพียงเวลาที่จัดสรรให้ทำการทดสอบหน่วยเท่านั้น หากการทดสอบหน่วยไม่เสร็จสิ้นภายในระยะเวลาที่กำหนด TestNG จะละทิ้งการทดสอบซอฟต์แวร์เพิ่มเติมและทำเครื่องหมายว่าเป็นความล้มเหลว
9) อธิบายการทดสอบข้อยกเว้น
TestNG ให้ตัวเลือกสำหรับการติดตามการจัดการข้อยกเว้นของโค้ด คุณสามารถทดสอบได้ว่าโค้ดส่งผลลัพธ์ที่คาดหวังหรือไม่ พารามิเตอร์ Exceptions ที่คาดหวังจะพร้อมใช้งานพร้อมกับคำอธิบายประกอบ @Test
10) “การทดสอบชุด” ทำอะไรใน TestNG?
“การทดสอบชุด” เสร็จสิ้นเมื่อคุณต้องทำการทดสอบหน่วยสองสามรายการร่วมกัน “การทดสอบชุด” จะรวมการทดสอบหน่วยนี้ไว้ด้วยกัน ไฟล์ XML ใช้เพื่อรันการทดสอบชุดโปรแกรม
11) การทดสอบแบบกำหนดพารามิเตอร์คืออะไร?
การทดสอบแบบกำหนดพารามิเตอร์ช่วยให้นักพัฒนาดำเนินการทดสอบเดียวกันซ้ำแล้วซ้ำอีกโดยใช้ค่าที่แตกต่างกัน ด้วยสองวิธีที่ TestNG อนุญาตให้คุณส่งพารามิเตอร์ไปยังวิธีทดสอบของคุณโดยตรง
- ด้วยการทดสอบ.xml
- กับผู้ให้บริการข้อมูล
12) คุณจะรันการทดสอบ JUnit โดยใช้ TestNG ได้อย่างไร?
คุณสามารถรันการทดสอบ JUnit โดยใช้ TestNG ได้โดย
- การวางไลบรารี JUnit บนคลาสพาธ TestNG เพื่อให้สามารถค้นหาและใช้คลาส JUnit
- เปลี่ยนตัวทดสอบของคุณจาก JUnit เป็น TestNG ใน Ant จากนั้นรัน TestNG ใน “โหมดผสม” นี่จะทำให้การทดสอบทั้งหมดของคุณเหมือนกัน
วิธีการนี้ยังช่วยให้คุณสามารถแปลงการทดสอบ JUnit ที่มีอยู่เป็น TestNG ได้
13) @Test(invocationCount=?) และ (threadPoolSize=?) บ่งชี้อะไร
- @Test (threadPoolSize=?): คุณลักษณะ threadPoolSize บอกให้ TestNG สร้างพูลเธรดเพื่อรันวิธีทดสอบผ่านหลายเธรด เมื่อใช้เธรดพูล เวลาการทำงานของวิธีทดสอบจะลดลงอย่างมาก
- @Test(invocationCount=?): จำนวนการร้องขอจะบอกจำนวนครั้งที่ TestNG ควรเรียกใช้วิธีทดสอบนี้
14) คุณสามารถสร้างรายงานสำหรับผลลัพธ์ TestNG ด้วยวิธีใดบ้าง?
มีสองวิธีในการสร้างรายงานด้วย Test NG ได้แก่
- ผู้ฟัง: เพื่อให้คลาส Listener นำไปใช้ คลาสจะต้องใช้งานอินเทอร์เฟซ org.testng./TestListener คลาสเหล่านี้จะได้รับแจ้งเมื่อรันไทม์โดย TestNG เมื่อการทดสอบเริ่มต้น สิ้นสุด ข้าม ผ่าน หรือล้มเหลว
- นักข่าว: เพื่อให้คลาสการรายงานนำไปใช้ คลาสจะต้องใช้อินเทอร์เฟซ org.testng/Reporter เมื่อการรันทั้งชุดสิ้นสุด คลาสเหล่านี้จะถูกเรียก เมื่อเรียก ออบเจ็กต์ที่ประกอบด้วยข้อมูลของการทดสอบทั้งหมดจะถูกส่งไปยังคลาสนี้
15) การทดสอบกลุ่มใน TestNG คืออะไร
เป็นคุณสมบัติใหม่ที่รวมอยู่ใน TestNG; ช่วยให้คุณสามารถจัดส่งวิธีการออกเป็นส่วนที่เหมาะสมและจัดกลุ่มวิธีทดสอบได้ ด้วยการทดสอบกลุ่ม คุณไม่เพียงแต่สามารถประกาศวิธีการที่อยู่ในกลุ่มได้เท่านั้น แต่คุณยังสามารถระบุกลุ่มการทดสอบที่มีกลุ่มอื่นได้อีกด้วย กลุ่มจะถูกกำหนดในไฟล์ Testing.xml ของคุณโดยใช้การทดสอบกลุ่ม
16) TestNG อนุญาตให้คุณระบุการขึ้นต่อกันได้อย่างไร?
TestNG ช่วยให้คุณสามารถระบุการอ้างอิงได้สองวิธี
- การใช้แอตทริบิวต์ขึ้นอยู่กับวิธีการใน @Test คำอธิบายประกอบ
- การใช้แอตทริบิวต์dependOnGroupsในคำอธิบายประกอบ @Test
17) เมื่อคุณต้องส่งพารามิเตอร์โดยใช้ผู้ให้บริการข้อมูลใน TestNG หมายความว่าอย่างไร
เมื่อคุณต้องส่งพารามิเตอร์ที่ซับซ้อนหรือพารามิเตอร์ที่จะสร้างจาก Java ในพารามิเตอร์อินสแตนซ์ดังกล่าวสามารถส่งผ่านได้โดยใช้ผู้ให้บริการข้อมูล คำอธิบายประกอบสำหรับผู้ให้บริการข้อมูลคือ @DataProvider คำอธิบายประกอบนี้มีแอ็ตทริบิวต์สตริงเดียวเท่านั้น หากไม่ได้ประกาศชื่อ ชื่อของผู้ให้บริการข้อมูลจะมีค่าเริ่มต้นเป็นชื่อของวิธีการโดยอัตโนมัติ ผู้ให้บริการข้อมูลให้ผลตอบแทนกลับคืนมา แถว ของวัตถุ
18) ตั้งชื่อวิธีการต่าง ๆ เพื่อดำเนินการทดสอบใน TestNG?
การทดสอบใน TestNG ดำเนินการโดยใช้คลาส TestNG สำหรับการรันการทดสอบในกรอบการทดสอบ TestNG คลาสคือจุดเริ่มต้นหลัก ผู้ใช้สามารถสร้างวัตถุ TestNG และเรียกใช้ได้หลายวิธีเช่น
- บนการทดสอบ.xml ที่มีอยู่แล้ว
- บนการทดสอบสังเคราะห์.xml ที่สร้างจาก Java ทั้งหมด
- โดยกำหนดคลาสทดสอบโดยตรง
19) ให้ตัวอย่างโค้ด 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 = "http://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.firefox.marionette", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); driver.close(); } }
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)
สิ่งที่ดีสำหรับการเตรียมตัวสำหรับการสัมภาษณ์
ในคำถามข้อที่ 6 คุณได้เขียนการทดสอบ.xml แทน testng.xml
ขอบคุณ … สิ่งนี้ได้รับการแก้ไขแล้ว
บรรทัดแรกของคำถามที่ 3 ควรเป็น “ข้อดีของ TestNG เหนือ JUnit รวมถึง”
ขอบคุณสำหรับคำถาม
แก้ไขข้อผิดพลาด!
11) การทดสอบแบบพาราเมตริกคืออะไร? มันควรจะเป็น การทดสอบแบบพารามิเตอร์คืออะไร?
สวัสดีขอบคุณสำหรับการเขียน มีการตรวจสอบและปรับปรุง