19 câu hỏi và câu trả lời phỏng vấn TestNG hàng đầu (2025)

Dưới đây là những câu hỏi và câu trả lời phỏng vấn TestNG dành cho cả ứng viên mới và ứng viên có kinh nghiệm để có được công việc mơ ước của mình.


1) TestNG là gì?

TestNG là một framework kiểm thử mã nguồn mở tự động. Nó dựa trên framework JUnit nhưng không phải là phần mở rộng của JUnit.

 

Tải xuống PDF miễn phí: Câu hỏi phỏng vấn TestNG


2) Các tính năng của TestNG là gì?

Các tính năng của TestNG bao gồm

  • TestNG sử dụng nhiều tính năng OO (hướng đối tượng) và Java hơn
  • Nó hỗ trợ kiểm tra các lớp tích hợp
  • Các chú thích khác nhau được hỗ trợ
  • Tách mã kiểm tra thời gian biên dịch khỏi thông tin dữ liệu/cấu hình thời gian chạy
  • Cấu hình thời gian chạy linh hoạt
  • Plug-in linh hoạt API
  • Để linh hoạt hơn nữa, hãy nhúng BeanShell
  • Hỗ trợ thử nghiệm selenium đa luồng
  • Hỗ trợ thử nghiệm song song, thử nghiệm tải, lỗi một phần, phương pháp thử nghiệm phụ thuộc
  • Sau khi biên dịch thử nghiệm, có thể yêu cầu TestNG chạy tất cả các thử nghiệm “giao diện” hoặc “chậm”, “nhanh”, “cơ sở dữ liệu”,
  • Đối với cùng một lớp thử nghiệm TestNG hỗ trợ nhiều trường hợp
  • Đối với việc ghi nhật ký, không có sự phụ thuộc, các hàm JDK mặc định để ghi nhật ký và chạy thời gian thực

3) Liệt kê những ưu điểm của TestNG so với Junit?

Ưu điểm của TestNG so với JUnit bao gồm

  • So với chú thích JUnit, TestNG dễ hiểu hơn
  • Không giống như JUnit, TestNG không yêu cầu phải khai báo @Before Class và @After Class
  • Không có ràng buộc tên phương thức trong TestNG
  • TestNG cho phép bạn nhóm các trường hợp thử nghiệm một cách dễ dàng, điều này không thể thực hiện được trong JUnit
  • TestNG hỗ trợ ba thiết lập bổ sung sau: @Before/After Suite, @Before/After Test và @Before/After Group
  • TestNG không cần phải mở rộng bất kỳ lớp nào
  • Trong TestNG, có thể chạy các trường hợp thử nghiệm trình điều khiển web selenium song song
  • Dựa trên nhóm TestNG cho phép bạn thực hiện các trường hợp thử nghiệm
  • TestNG cho phép bạn xác định các trường hợp thử nghiệm phụ thuộc; mỗi trường hợp thử nghiệm là độc lập với trường hợp thử nghiệm khác

4) Các bước cơ bản cần thiết khi viết bài kiểm tra TestNG là gì?

Các bước cơ bản cần thiết để viết TestNG bao gồm

  • Viết ra logic kinh doanh của bài kiểm tra của bạn và chèn chú thích TestNG vào mã của bạn
  • Trong một bản dựng.xml hoặc testing.xml, thêm thông tin về bài kiểm tra của bạn
  • Chạy TestNG

5) Liệt kê những cách khác nhau mà TestNG có thể được gọi.

TestNG có thể được gọi theo nhiều cách khác nhau như

  • Sử dụng Eclipse
  • Với kiến
  • Từ dòng lệnh
  • Sử dụng IDEA của IntelliJ
Câu hỏi phỏng vấn TestNG
Câu hỏi phỏng vấn TestNG

6) Giải thích cách sử dụng file testng.xml

Tệp testing.xml ghi lại toàn bộ quá trình thử nghiệm của bạn trong XML. Tệp này giúp bạn dễ dàng xác định tất cả bộ thử nghiệm và các tham số của chúng trong một tệp, bạn có thể xác minh trong kho lưu trữ mã hoặc gửi email cho đồng nghiệp. Nó cũng giúp bạn dễ dàng kéo các tập hợp con của các thử nghiệm hoặc chia nhỏ nhiều cấu hình thời gian chạy.


7) Trong TestNG, làm thế nào bạn có thể vô hiệu hóa một bài kiểm tra?

Để vô hiệu hóa trường hợp thử nghiệm mà bạn không muốn, bạn có thể sử dụng chú thích @Test(enabled = false).


8) Kiểm tra Time-Out trong TestNG là gì?

Kiểm tra Time-Out trong TestNG không gì khác ngoài thời gian được phân bổ để thực hiện kiểm tra đơn vị. Nếu kiểm tra đơn vị không hoàn thành trong thời hạn cụ thể đó, TestNG sẽ từ bỏ việc kiểm tra phần mềm tiếp theo và đánh dấu là lỗi.


9) Giải thích kiểm tra ngoại lệ

TestNG cung cấp tùy chọn theo dõi việc xử lý Ngoại lệ của mã. Bạn có thể kiểm tra xem mã có trả về kết quả mong đợi hay không. Tham số Ngoại lệ mong đợi được cung cấp cùng với chú thích @Test.


10) “Suite test” trong TestNG có tác dụng gì?

“Kiểm thử bộ” được thực hiện khi bạn phải chạy một vài bài kiểm thử đơn vị cùng nhau. “Kiểm thử bộ” sẽ gộp các bài kiểm thử đơn vị này lại với nhau. Một tệp XML được sử dụng để chạy kiểm thử bộ.

kiểm traNG
kiểm traNG

11) Kiểm thử tham số là gì?

Kiểm thử tham số hóa cho phép các nhà phát triển thực hiện cùng một bài kiểm thử nhiều lần bằng các giá trị khác nhau. TestNG cho phép bạn truyền tham số trực tiếp vào phương thức kiểm thử của mình theo hai cách khác nhau.

  • Với testing.xml
  • Với Nhà cung cấp dữ liệu

12) Làm thế nào để chạy thử nghiệm JUnit bằng TestNG?

Bạn có thể chạy thử nghiệm JUnit bằng TestNG bằng cách

  • Đặt thư viện JUnit trên classpath TestNG để nó có thể định vị và sử dụng các lớp JUnit
  • Thay đổi trình chạy thử nghiệm của bạn từ JUnit sang TestNG trong Ant và sau đó chạy TestNG ở "chế độ hỗn hợp". Điều này sẽ đưa tất cả các thử nghiệm của bạn vào cùng một

Phương pháp này cũng cho phép bạn chuyển đổi bài kiểm tra JUnit hiện tại sang TestNG.


13) @Test(invocationCount=?) và (threadPoolSize=?) biểu thị điều gì?

  • @Test (threadPoolSize=?): Thuộc tính threadPoolSize yêu cầu TestNG tạo một nhóm luồng để chạy phương thức kiểm tra thông qua nhiều luồng. Với nhóm luồng, thời gian chạy của phương thức kiểm tra giảm đáng kể.
  • @Test(invocationCount=?): Số lần gọi cho biết TestNG nên chạy phương thức thử nghiệm này bao nhiêu lần

14) Có những cách nào khác nhau để tạo báo cáo kết quả TestNG?

Có hai cách để tạo báo cáo bằng Test NG, đó là

  • Người nghe: Để một lớp listener triển khai, lớp này phải triển khai Giao diện org.testng./TestListener. Các lớp này được TestNG thông báo khi chạy thử nghiệm bắt đầu, kết thúc, bỏ qua, vượt qua hoặc thất bại.
  • những phóng viên: Để một lớp báo cáo triển khai, lớp đó phải triển khai giao diện org.testng/Reporter. Khi toàn bộ quá trình chạy bộ kết thúc, các lớp này được gọi. Khi được gọi, đối tượng bao gồm thông tin của toàn bộ quá trình chạy thử nghiệm được chuyển đến lớp này.

15) Kiểm tra nhóm trong TestNG là gì?

Đây là một tính năng mới được tích hợp trong TestNG; nó cho phép bạn phân bổ các phương thức vào các phần thích hợp và thực hiện nhóm các phương thức kiểm thử. Với kiểm thử nhóm, bạn không chỉ có thể khai báo các phương thức thuộc về nhóm mà còn có thể chỉ định các nhóm kiểm thử chứa các nhóm khác. Các nhóm được xác định trong tệp testing.xml của bạn bằng lệnh group test.


16) Có những cách nào để TestNG cho phép bạn chỉ định các phụ thuộc?

TestNG cho phép bạn chỉ định các phụ thuộc theo hai cách

  • Sử dụng thuộc tính dependOnMethods trong chú thích @Test
  • Sử dụng thuộc tính dependOnGroups trong chú thích @Test

17) Điều gì xảy ra khi bạn phải truyền tham số bằng cách sử dụng data-providers trong TestNG?

Khi bạn phải truyền tham số phức tạp hoặc các tham số được tạo từ Java, trong trường hợp đó, tham số có thể được truyền bằng cách sử dụng Data Provider. Chú thích cho Data Provider là @DataProvider. Chú thích này chỉ có một thuộc tính chuỗi duy nhất nếu tên không được khai báo; tên của Data Provider sẽ tự động mặc định là tên của phương thức. Data Provider trả về một mảng của các đối tượng.


18) Hãy nêu tên các phương pháp khác nhau để thực hiện thử nghiệm trong TestNG?

Các bài kiểm tra trong TestNG được thực thi bằng lớp TestNG. Để chạy các bài kiểm tra trong khung kiểm tra TestNG, lớp này là điểm vào chính. Người dùng có thể tạo đối tượng TestNG và gọi nó theo nhiều cách khác nhau như

  • Trên một testing.xml đã tồn tại
  • Trên một testing.xml tổng hợp được tạo hoàn toàn từ Java
  • Bằng cách thiết lập trực tiếp các lớp kiểm tra

19) Cung cấp mã TestNG mẫu

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

Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn

Chia sẻ

7 Comments

  1. hình đại diện Aditya Kasturi nói:

    Tốt cho việc chuẩn bị cho các cuộc phỏng vấn

  2. Trong câu hỏi số 6, bạn đã viết testing.xml thay vì testng.xml

    1. hình đại diện quản trị viên nói:

      Cảm ơn… điều này đã được sửa

  3. Dòng đầu tiên của câu hỏi thứ 3 phải là “Ưu điểm của TestNG so với JUnit”.

    Cảm ơn các câu hỏi của bạn.

  4. hình đại diện thiền sư pradip nói:

    11) Kiểm thử tham số là gì? Nó phải là Kiểm thử tham số hóa là gì?

    1. Xin chào, cảm ơn bạn đã viết. Bài viết đã được xem xét và cập nhật.

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *