001) selenium+testng:日志监听器TestListenerAdapter
1、TestNG 提供的几种监听器(预定义的 Java 接口):IAnnotationTransformer IAnnotationTransformer2 IHookable IInvokedMethodListener IMethodInterceptor ISuiteListener IReporter ITestListener
2、目前的框架主要用到IReporter 和 ITestLisntener:
(1)监听测试方法(1个Test为一个测试方法)
public void onTestSuccess(ITestResult tr)
public void onTestFailure(ITestResult tr)
public void onTestSkipped(ITestResult tr)
(2)每一个测试方法开始执行时
public void onTestStart(ITestResult result)
(3)Test开始和结束时(testng.xml中的Test)
public void onStart(ITestContext testContext)
public void onFinish(ITestContext testContext)
3、使用方式:用户继承这些接口的实现类,复写父类的方法(也可调用父类的方法,保存父类的行为)指定不同后续行为,并把它们加入到 TestNG 中,TestNG 便会在测试运行的不同时刻(测试执行开始、执行结束、测试方法执行成功、执行失败、者跳过)调用这些类中的接口方法。
4、实例
1、创建监听类,继承TestListenerAdapter(TestListenerAdapter
已经实现 ITestListener),复写需要复写的方法
(2)、创建测试类,在类定义前面加上@listener标签,监听类用大括号
(3)结果
*****onStart*****
*****onTestStart*****
testListeners.......
*****onTestSuccess*****
*****onFinish*****
PASSED: testListeners
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================
5、ITestResult 中有对监听的方法中的testng.xml配置信息的获取
例如:result.getTestContext().getName():获取testng中<test>标签中的name值
result.getTestClass().getRealClass().getName():获取testng<class>标签的值,即类报名+类名
result.getName()
:获取class中运行的方法名
6、优化
日志 :可将以上的方法中的输出,转化成日志输出
截图:在onTestFailure做截图功能