@Test
用例失败重跑,retry最终一定是针对测试用例得,一个方法只有被@Test标注了才是测试用例,那么我们看下,@Test注解有没有相关属性呢?
retryAnalyzer,就是用于指定失败重跑得方案得,那么对应TestNG体系里提供了:
1.接口:IRetryAnalyzer
2.实现了接口得抽象类:
public abstract class RetryAnalyzerCount implements IRetryAnalyzer
所以,我们想实现失败自动重跑得方案就有了:
1.实现IRetryAnalyzer 接口
2.指定@Test得retryAnalyzer为我们得实现类
实现IRetryAnalyzer
我们已经知道IRetryAnalyzer接口有个抽象类RetryAnalyzerCount,那么我们可以自己重新实现IRetryAnalyzer,当然也可以直接继承RetryAnalyzerCount,这里我们选择直接继承RetryAnalyzerCount。
我们的RetryAnalyzer类,设置了重试计数为3,实现retryMethod,始终返回true。
我们看下RetryAnalyzerCount抽象类,它的关键是实现了retry方法,count就是重试计数值,获取count后减一,只要count大于0,看retryMethod方法的返回决定是否重试,只要retry的最后返回是true,就重新运行。