天天看点

testng日志 ITestListener

上一节我们写一个日志类 extends   testlisteneradapter ----------testlisteneradapter 是 itestlistener 实现的一个类

这一节,我们写一个日志类  implements   itestlistener

itestnglistener 接口 有两个子接口:ireporter (生成报告)、itestlistener (生成日志)

此次我们写一个日志类直接实现 itestlistener 接口

在自定义的 customlistener 中,需要实现 itestlistener 的全部方法。

使用自定义的listener

现在完成了创建listener,还需要声明listener,然后测试脚本才能使用这个listener。

有两种方式声明listener:

一种是 添加@listeners 注解到测试条例上,缺点是每个使用自定义listener的测试条例都要添加@listeners注解,很麻烦。

另一种是 ​​使用testng.xml配置文件​​,在其中添加suite标签和listener标签。

输出结果:

testng.xml 文件

itestlistener适用场景

当使用testng执行测试时,我们常会想在某个阶段做一些特别的处理,比如:测试成功结束后,测试失败后,跳过某个脚本后,全部脚本执行完毕后。

要想达成这个目标,我们需要实现testng的itestlistener接口,自定义一个自己的listener。

itestlistener包含两种类型的方法:

一类是测试用例级别的,例如onteststart,ontestsuccess,ontestfailure,ontestskipped,ontestfailedbutwithinsuccesspercentage;

另一类是测试集级别的,例如onstart,onfinish。这些方法有一个输入参数,result或者context。

result是itestresult类型的,可以知晓测试用例成功或者失败和测试何时开始等信息。

context是itestcontext类型的,适用于测试集级别,可以知晓成功的脚本有哪些,失败的脚本有哪些。