19 个最受欢迎的 TestNG 面试问题及答案(2025 年)

以下是 TestNG 面试问题和答案,可帮助应届毕业生和有经验的应聘者获得理想的工作。


1)什么是TestNG?

TestNG 是一个自动化开源测试框架。它基于 JUnit 框架,但不是 JUnit 扩展。

 

免费 PDF 下载:TestNG 面试题


2)TestNG 的特点是什么?

TestNG 功能包括

  • TestNG 使用更多 OO(面向对象)和 Java 特性
  • 支持测试集成类
  • 支持不同的注释
  • 将编译时测试代码与数据信息/运行时配置分开
  • 运行时配置灵活
  • 灵活插件 API
  • 为了进一步提高灵活性,嵌入了 BeanShell
  • 多线程 Selenium 测试支持
  • 支持并行测试、负载测试、部分故障、依赖测试方法
  • 测试编译完成后,可以向 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 中,可以并行运行 selenium web driver 测试用例
  • 基于组TestNG允许您执行测试用例
  • TestNG 允许您确定依赖的测试用例;每个测试用例都独立于另一个测试用例

4)编写TestNG测试需要哪些基本步骤?

编写 TestNG 所需的基本步骤包括

  • 写下测试的业务逻辑并在代码中插入 TestNG 注释
  • 在构建中。XML 或 testing.xml,添加有关测试的信息
  • 运行 TestNG

5) 列出调用TestNG的各种方式。

TestNG 可以通过不同的方式调用,例如

  • 运用 月食
  • 有蚂蚁
  • 从命令行
  • 使用 IntelliJ 的 IDEA
TestNG 面试问题
TestNG 面试问题

6)解释testng.xml文件的使用

文件 testing.xml 以 XML 格式捕获您的整个测试。此文件可让您轻松地在一个文件中定义所有测试套件及其参数,您可以在代码存储库中验证这些参数或通过电子邮件发送给同事。它还让您可以轻松地提取测试的子集或拆分多个运行时配置。


7)在 TestNG 中如何禁用测试?

要禁用您不想要的测试用例,您可以使用注释@Test(enabled = false)。


8)TestNG 中的 Time-Out 测试是什么?

TestNG 中的超时测试只不过是执行单元测试所分配的时间。如果单元测试未能在特定时间限制内完成,TestNG 将放弃进一步的软件测试并将其标记为失败。


9)解释异常测试

TestNG 提供了跟踪代码异常处理的选项。您可以测试代码是否抛出了预期的结果。预期的异常参数与 @Test 注释一起使用。


10)TestNG 中的“套件测试”起什么作用?

当你需要同时运行多个单元测试时,可以使用“套件测试”来执行。“套件测试”会将这些单元测试捆绑在一起。使用 XML 文件来运行套件测试。

测试NG
测试NG

11)什么是参数化测试?

参数化测试允许开发人员使用不同的值反复执行相同的测试。TestNG 允许你通过两种不同的方式将参数直接传递给测试方法。

  • 使用 testing.xml
  • 使用数据提供者

12) 如何使用 TestNG 运行 JUnit 测试?

您可以使用 TestNG 运行 JUnit 测试

  • 将 JUnit 库放在 TestNG 类路径上,以便它可以找到并使用 JUnit 类
  • 在 Ant 中将测试运行器从 JUnit 更改为 TestNG,然后在“混合模式”下运行 TestNG。这将使您的所有测试都处于相同的

这种方法还使您能够将现有的 JUnit 测试转换为 TestNG。


13)@Test(invocationCount=?) 和 (threadPoolSize=?) 表示什么?

  • @Test(线程池大小=?): threadPoolSize 属性告诉 TestNG 形成一个线程池,通过多个线程来运行测试方法。有了线程池,测试方法的运行时间大大减少。
  • @测试(调用次数=?): 调用计数表示 TestNG 应运行此测试方法的次数

14) 有哪些不同的方法可以生成 TestNG 结果报告?

使用 Test NG 生成报告有两种方法,分别是

  • 听众: 对于要实现的监听器类,该类必须实现 org.testng./TestListener 接口。TestNG 在运行时会通知这些类测试何时开始、结束、跳过、通过或失败。
  • 记者: 对于要实现报告的类,该类必须实现 org.testng/Reporter 接口。当整个套件运行结束时,将调用这些类。调用时,将整个测试运行的信息组成的对象传递给此类。

15)TestNG 中的组测试是什么?

这是 TestNG 的一项新功能;它允许您将方法分派到适当的部分,并对测试方法进行分组。使用组测试,您不仅可以声明属于组的方法,还可以指定包含其他组的测试组。组是使用组测试在 Testing.xml 文件中确定的。


16)有哪些方法可以让 TestNG 允许你指定依赖项?

TestNG 允许您以两种方式指定依赖项

  • 在 @Test 注释中使用属性dependsOnMethods
  • 在 @Test 注释中使用属性dependsOnGroups

17) 在 TestNG 中,使用数据提供者传递参数意味着什么?

当你需要传递复杂的参数或需要从 Java 创建的参数时,可以使用数据提供者传递参数。数据提供者的注解是 @DataProvider。如果未声明名称,则此注解只有一个字符串属性;数据提供者的名称将自动默认为方法的名称。数据提供者返回一个 排列 对象。


18) 说出在 TestNG 中执行测试的各种方法?

TestNG 中的测试使用 TestNG 类执行。在 TestNG 测试框架中运行测试时,该类是主要入口点。用户可以创建自己的 TestNG 对象,并以多种方式调用它,例如

  • 在已经存在的 testing.xml 上
  • 在完全由 Java 创建的合成 testing.xml 上
  • 通过直接设置测试类

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

这些面试问题也会对你的口试有帮助

分享

7条评论

  1. 头像 阿迪亚·卡斯图里 说:

    为面试做准备的好方法

  2. 头像 罗希特 说:

    在问题 6 中,您编写的是 testing.xml 而不是 testng.xml

  3. 第三个问题的第一行应该是“TestNG 相对于 JUnit 的优势包括”。

    感谢您的提问。

  4. 头像 普拉迪普瑜伽士 说:

    11)什么是参数测试? 应该是参数化测试是什么?

    1. 头像 克里希纳 说:

      嗨,谢谢你的来信。已审核并更新。

发表评论

您的电邮地址不会被公开。 必填项 *