1、初级应用
testng在执行测试方法前会重新实例化测试类,执行构造方法。如果继承父类,会先执行父类的构造方法。
参数 enabled = false可以跳过测试方法。
Reporter.log可以自动产生记录脚本的运行信息。
testng的用例组织结构:
Test Suite由一个或多个Test组成
Test由一个或多个测试class组成
一个测试class由一个或多个测试方法组成
@Test(group =“分组名”)
xml中<include>指定需要执行的方法和顺序
2、高级应用
(1)ITestResult
是一个接口,结合@AfterMethod可以监听@Test方法的执行状态
(2)IReporter
TestNG 提供了默认的测试报表。但如果用户希望有不同格式的测试
报表,就需要使用 IReporter 监听器。IReporter 监听器只有一个方法
需要实现。
void generateReport(List<XmlSuite> xmlSuites, List<ISuite>
suites, String outputDirectory);
该方法在所有测试方法执行结束后被调用,通过遍历
xmlSuites 和 suites 能够获取所有测试方法的信息以及测试结果。
outputDirectory 是默认的测试报表生成路径,可以指定其他路径生成
报表。
这个方法有三个参数:
xmlSuite:这是TestNG的测试XML正在执行中提到的列表套件。
suites:其中包含一套测试执行后信息,该对象包含了所有的信
息包,类,测试方法和测试执行结果。
outputDirector:报告将产生的输出文件夹路径,其中包含的信
息。
详见 Reporter.java
(3)ITestListener
监听器会监听每个测试case的运行结果,可以实现自行截图、发送邮件给相关人员。
6、ITestListener监听器如果要在测试方法执行成功、失败或者跳过时
指定不同后续行为,可以利用ITestListener 监听器。也可以直接继承
TestListenerAdapter类来实现。该类是一个基于ITestListener 的简单
适配器,存储了被运行的所有测试用例。
注意:
在 @Listeners 中添加监听器跟在 testng.xml 添加监听器一样,将被应用到整个测
试套件中的测试方法。如果需要控制监听器的应用范围(比如添加的监听器仅使用于
某些测试类或者某些测试方法),则必须在监听器类中编写适当的判断逻辑。
•在 @Listeners 中添加监听器跟在 testng.xml 添加监听器的不同之处在于,它不能
添加 IAnnotationTransformer 和 IAnnotationTransformer2 监听器。原因是因为这
两种监听器必须在更早的阶段添加到 TestNG 中才能实施修改注释的操作,所以它们
只能在 testng.xml 添加。
3、配置手册