คำถามและคำตอบสัมภาษณ์ 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
คำถามสัมภาษณ์ TestNG
คำถามสัมภาษณ์ TestNG

6) อธิบายการใช้ไฟล์ testng.xml

ไฟล์ Testing.xml บันทึกการทดสอบทั้งหมดของคุณในรูปแบบ XML ไฟล์นี้ทำให้ง่ายต่อการกำหนดชุดการทดสอบและพารามิเตอร์ทั้งหมดไว้ในไฟล์เดียว ซึ่งคุณสามารถตรวจสอบได้ในที่เก็บโค้ดหรือส่งอีเมลถึงเพื่อนร่วมงาน นอกจากนี้ยังช่วยให้ดึงชุดย่อยของการทดสอบออกหรือแยกการกำหนดค่ารันไทม์หลายรายการได้อย่างง่ายดาย


7) ใน TestNG คุณจะปิดการใช้งานการทดสอบได้อย่างไร?

หากต้องการปิดใช้งานกรณีทดสอบที่คุณไม่ต้องการ คุณสามารถใช้คำอธิบายประกอบ @Test(enabled = false)


8) การทดสอบการหมดเวลาใน TestNG คืออะไร?

การทดสอบการหมดเวลาใน TestNG เป็นเพียงเวลาที่จัดสรรให้ทำการทดสอบหน่วยเท่านั้น หากการทดสอบหน่วยไม่เสร็จสิ้นภายในระยะเวลาที่กำหนด TestNG จะละทิ้งการทดสอบซอฟต์แวร์เพิ่มเติมและทำเครื่องหมายว่าเป็นความล้มเหลว


9) อธิบายการทดสอบข้อยกเว้น

TestNG ให้ตัวเลือกสำหรับการติดตามการจัดการข้อยกเว้นของโค้ด คุณสามารถทดสอบได้ว่าโค้ดส่งผลลัพธ์ที่คาดหวังหรือไม่ พารามิเตอร์ Exceptions ที่คาดหวังจะพร้อมใช้งานพร้อมกับคำอธิบายประกอบ @Test


10) “การทดสอบชุด” ทำอะไรใน TestNG?

“การทดสอบชุด” เสร็จสิ้นเมื่อคุณต้องทำการทดสอบหน่วยสองสามรายการร่วมกัน “การทดสอบชุด” จะรวมการทดสอบหน่วยนี้ไว้ด้วยกัน ไฟล์ XML ใช้เพื่อรันการทดสอบชุดโปรแกรม

ทดสอบNG
ทดสอบNG

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();
  }
}

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)

Share

7 คอมเมนต์

  1. รูปโพรไฟล์ อาทิตยา กาสตูรี พูดว่า:

    สิ่งที่ดีสำหรับการเตรียมตัวสำหรับการสัมภาษณ์

  2. รูปโพรไฟล์ เปาโรหิตย์ พูดว่า:

    ในคำถามข้อที่ 6 คุณได้เขียนการทดสอบ.xml แทน testng.xml

    1. รูปโพรไฟล์ ผู้ดูแลระบบ พูดว่า:

      ขอบคุณ … สิ่งนี้ได้รับการแก้ไขแล้ว

  3. รูปโพรไฟล์ นิมิตร พูดว่า:

    บรรทัดแรกของคำถามที่ 3 ควรเป็น “ข้อดีของ TestNG เหนือ JUnit รวมถึง”

    ขอบคุณสำหรับคำถาม

    1. รูปโพรไฟล์ ผู้ดูแลระบบ พูดว่า:

      แก้ไขข้อผิดพลาด!

  4. รูปโพรไฟล์ ประดิปโยคี พูดว่า:

    11) การทดสอบแบบพาราเมตริกคืออะไร? มันควรจะเป็น การทดสอบแบบพารามิเตอร์คืออะไร?

    1. รูปโพรไฟล์ กฤษณะ พูดว่า:

      สวัสดีขอบคุณสำหรับการเขียน มีการตรวจสอบและปรับปรุง

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *