说明:由于该系列是好友之邀,优先提供给好友的自媒体账号发布Testng系列文章,所以可能大家会提前看过接下来的这些文章内容。
本篇来介绍TestNG中的注释,前面我们已经学习了一个注释,那就是“@Test”,也知道它的作用。就是在方法名称上面一行添加这个注释,这个方法就变成了测试用例,一定会被执行。这里,我们介绍下其他的注释的基本使用说明。
1. @Before和@After 注释
这两个就比较多,一般用于在测试构件上。关于测试构件以后详细介绍,测试构件一般有测试之前的操作和测试运行之后的清除数据的操作。
Before分类有@BeforeSuite,@BeforeTest, @BeforeGroups,@BeforeClass,@BeforeMethod
After分类有@AfterSuite,@ AfterTest, @AfterGroups,@ AfterClass,@ AfterMethod
很明显,看这些注释名称就大概明白,至少每个注释的范围不同而已。
举例:
package com.java.learn;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* create by Anthony on 2017/10/29
*/
public class TestNG_Demo1 {
@BeforeClass
public void setUp(){
System.out.println("启动测试的前提条件准备,一般放这个方法中");
}
@AfterClass
public void tearDown(){
System.out.println("测试运行结束后的步骤,一般是恢复环境到测试开始之前的状态");
}
@Test
public void test1(){
System.out.println("Hello");
}
}
2. @DataProvider注释
标记一个方法是用来给其他测试方法提供数据的方法。要求该方法必须返回是object[][].
3. @Factory
标记这个方法是一个工厂,方法必须返回的是一个对象。
4. @Listeners
在一个测试方法上定义一个监听。例如Selenium自动化测试中需要用到这个事件监听功能,方便我们输出日志。
5. @Parameters
描述了如何给一个测试方法传提参数。
6. @Test
在@Test下有很多选项可以设置,例如用例之间的依赖关系等。
这里举例一个@Parmeters
基于TestNG测试用例内容如下:
package com.java.learn;
import com.sun.tracing.ProviderName;
import org.testng.annotations.*;
/**
* create by Anthony on 2017/10/29
*/
public class TestNG_Demo1 {
@Test
@Parameters({"Browser", "Server"})
public void test1(String browser, String server){
System.out.println("Hello");
System.out.println("这次启动浏览器是: "+browser+" 测试服务器地址是: "+server);
}
}
项目根目录下的testng.xml内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
<parameter name="Browser" value="Chrome" />
<parameter name="Server" value="https://www.baidu.com" />
<test name="Java_Learn">
<classes>
<class name="com.java.learn.TestNG_Demo1"/>
<!-- 添加不同测试类文件 -->
</classes>
</test> <!-- Java_Learn -->
</suite> <!-- Default Suite -->
然后回到运行testng.xml,观察输出结果,发现配置在testng.xml中的参数已经成功地传入到测试方法中。其他的注释,以后遇到再写例子。主要是对这几个注释有点印象就可以,其实真实测试中用到最多的还是@Test这注释,在这个注释下有很多个选项来组合帮助我们解决一些用例执行的问题。接下来的文章,我们慢慢来学习@Test下的一些属性,重点介绍下@Test注释下的一些属性。