背景:因为这里只是想单独展示失败的重跑的案例,所以先暂时把app这块的运行注释掉,只跑一个简单的demo,就一个简单类,类中就3个测试方法,失败重跑的原理是,运行方法是成功状态,就不重跑,如果是失败的,就在继续执行方法,直到他设置的最大重跑次数时就停止失败重跑很关键的是,要先添加这个一个类,实现IRetryAnalyzer 这个方法,以下就是一个retry 类。
这个类RetryListener.Java主要是实现IAnnotationTransformer 方法
配置监听
在xml文件中配置监听器, 监听的是RetryListener这个类。
目前的目录结构是这样,但是关键是retry.java,RetryListener.java,rosewholepc.java:
实 现
在rosewholepc中写入的方法为:
查看执行效果
以为这样就完了,其实没有,这个时候执行你会发现他会记录你3次结果数据,但是其实我们只想记录最后1次的数据,因为做UI你会发现,因为网络原因会导致第一次失败,第二次就正常了,所以我们增加重跑就可以减少脚本的误报的情况,我们只要采取最后一次结果就好了。
finish监听加代码
在TestngListener这个类里面的finnish监听里面加上这段代码就可以了。
Xml文件加上这两段
执行效果
参考文章
参考文章:http://blog.csdn.net/qq744746842/article/details/51428938。
这篇文章中提到是去实现ITestListener接口, IestListenerAdapter 已经实现 ITestListener,并且提供了一些有用的方法,比如分别获取所有成功失败跳过三种测试结果的测试方法的方法,并且 ITestListner 中有很多方法而 TestListenerAdapter 已给出了默认实现。因此,继承 TestListenerAdapter 后,便只需关注需要修改的方法。刚好我们用到的也是TestListenerAdapter,所以在onFinish中直接完成就可以了。
我添加了2个案例:
执行效果如下: