在自动化测试用例时, 你有一个要求, 希望你首先删除提交的数据。例如, 当你运行测试用例时, 你将在表格中填写详细信息, 并将数据保存在数据库中。当你再次运行测试用例时, 你将收到一个错误消息”
数据已存在”
。
@BeforeTest:@BeforeTest注释下的方法将在属于该文件夹的任何测试之前首先执行。
让我们通过一个例子来理解。
【TestNG @BeforeTest注解用法图解】第一种情况:将@BeforeTest注释的方法放在开头时。
步骤1:打开Eclipse。
步骤2:我们创建两个Java项目, 即it_department.java和hr_department.java。
it_department.java
package com.srcmini;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class it_department { @BeforeTest// annotated method placed in the beginning.public void before_test(){System.out.println("It will be executed first");
}@Testpublic void software_developers(){System.out.println("Software Developers");
}@Testpublic void software_testers(){System.out.println("Software Testers");
}@Testpublic void qa_analyst(){System.out.println("QA Analyst");
}}
在上面的代码中, 在@BeforeTest注释下放置了一个方法, 该方法将在it_department中可用的所有测试方法之前首先执行。
hr_department.java
package com.srcmini;
import org.testng.annotations.Test;
public class hr_department { @Test public void manager() {System.out.println("Manager");
} @Test public void hr() {System.out.println("HR");
} @Test public void counsellor() {System.out.println("Counsellor");
}}
步骤3:创建testng.xml文件。 testng.xml文件
<
?xml version="1.0" encoding="UTF-8"?>
<
!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<
suite name="test_suite">
<
test name="IT Department">
<
classes>
<
class name="com.srcmini.it_department"/>
<
/classes>
<
/test>
<
!-- Test -->
<
test name="HR Department">
<
classes>
<
class name="com.srcmini.hr_department"/>
<
/classes>
<
/test>
<
!-- Test -->
<
/suite>
<
!-- Suite -->
步骤4:运行testng.xml文件。右键单击testng.xml, 然后将光标向下移动到Run As, 然后单击1 TestNG Suite。
输出
文章图片
上面的输出显示@BeforeTest批注中的方法首先在it_department的所有测试案例之前执行。
第二种情况:将@BeforeTest带注释的方法放在最后。
源代码
package com.srcmini;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class it_department { @Testpublic void software_developers(){System.out.println("Software Developers");
}@Testpublic void software_testers(){System.out.println("Software Testers");
}@Testpublic void qa_analyst(){System.out.println("QA Analyst");
}@BeforeTestpublic void before_test()// annotated method placed at the end.{System.out.println("It will be executed first");
}}
在上面的代码中, 我们将@BeforeTest注释方法放在最后。
输出
文章图片
在上面的输出中, 我们得出结论, 首先执行@BeforeTest注释方法, 因此, 得出结论, 将@BeforeTest注释方法放置在任何地方, 它将首先执行。
推荐阅读
- TestNG监听器用法示例
- 什么是TestNG注解(用法示例)
- TestNG @BeforeSuite注解用法示例
- TestNG @BeforeMethod注解用法示例
- TestNG注解属性用法示例图解
- TestNG @BeforeGroups注解用法示例
- TestNG @BeforeClass注解用法示例
- TestNG @AfterTest注解用法示例
- TestNG @AfterSuite注解用法示例