TestNG 注释属性

17 Mar 2025 | 5 分钟阅读

在 TestNG 中编写测试用例时,您需要在测试方法之前提及 @Test 注释。

在上面的代码中,我们在测试方法(即 testcase1())之前指定了 @Test 注释。

我们还可以在 @Test 注释中显式指定属性。 测试属性是测试特定的,它们被指定在 @Test 注释的右侧。

下面描述了一些常见属性

TestNG Annotation Attributes
  • 描述
  • timeOut
  • 优先级
  • dependsOnMethods
  • enabled
  • groups

描述

它是一个附加到 @Test 注释的字符串,用于描述关于测试的信息。

让我们通过一个例子来理解。

在上面的代码中,我们在每个测试中都添加了 description 属性。 "description" 属性提供有关测试的信息。

dependsOnMethods

当第二个测试方法想要依赖于第一个测试方法时,这可以通过使用 "dependOnMethods" 属性来实现。如果第一个测试方法失败,则依赖于第一个测试方法的方法(即第二个测试方法)将不会运行。

让我们通过一个例子来理解。

第一种情况: 当一个参数中传递单个值时。

我们知道 TestNG 按字母顺序执行测试方法,因此在上面的程序中,APIStudentLogin() 将首先执行。但是,我们希望 WebStudentLogin() 方法在执行 APIStudentLogin() 方法之前执行,因此这只能通过 "dependsOnMethods" 属性来实现。在上面的程序中,我们在 APIStudentLogin() 测试方法中指定了 "dependsOnMethods" 属性,其值为 "WebStudentLogin",这意味着 WebStudentLogin() 方法将在 APIStudentLogin() 方法之前执行。

输出

TestNG Annotation Attributes

在上面的输出中,MobileStudentLogin() 在 WebStudentLogin() 方法之前运行,因为 TestNG 按字母顺序运行测试方法。

第二种情况: 当一个参数中传递多个值时。

在上面的代码中,testcase1() 依赖于两种方法,即 testcase2() 和 testcase3(),这意味着这两种方法将在 testcase1() 之前执行。

输出

TestNG Annotation Attributes

优先级

当未指定 'priority' 属性时,TestNG 将按字母顺序运行测试用例。优先级确定测试用例的执行顺序。优先级可以包含 -5000 到 5000 之间的整数值。设置优先级后,最低优先级的测试用例将首先运行,最高优先级的测试用例将最后执行。假设我们有三个测试用例,它们的优先级值是 -5000、0、15,那么执行顺序将是 0、15、5000。如果未指定优先级,则默认优先级为 0。

让我们通过一个例子来理解。

在上面的代码中,mango() 测试方法的默认优先级为 0,因此它将首先执行。watermelon() 测试方法将在 mango() 方法之后运行,因为 watermelon() 测试方法的优先级为 2。apple() 测试方法的优先级最高,因此它将最后执行。

输出

TestNG Annotation Attributes

enabled

'enabled' 属性包含布尔值。 默认情况下,其值为 true。 如果您想跳过某些测试方法,则需要显式指定 'false' 值。

让我们通过一个例子来理解。

在上面的代码中,jira() 测试方法中 enabled 属性的值为 false,因此不会调用此方法。

输出

TestNG Annotation Attributes

groups

'groups' 属性用于将属于同一功能的不同的测试用例分组。

让我们通过一个例子来理解。

testng.xml

输出

TestNG Annotation Attributes

timeOut

如果其中一个测试用例由于执行时间过长而导致其他测试用例失败。 为了克服这种情况,您需要将测试用例标记为失败,以避免其他测试用例失败。 timeOut 是为测试用例提供的用于完全执行其测试用例的时间段。

让我们通过一个例子来理解。

在上面的代码中,在 testcase1() 方法内部,我们有 Thread.sleep(500),这意味着 testcase1() 方法将在 500 毫秒后执行,但我们提供了 timeOUT 属性,其值为 200,这意味着 testcase1() 将在 200 毫秒后失败。

testng.xml

输出

TestNG Annotation Attributes

上面的屏幕显示一个测试用例失败,其他测试用例通过。

TestNG Annotation Attributes
下一页主题TestNG 参数