Tuesday, 24 July 2018

RETRY TEST CASE LOGIC WITH MAX LIMIT USING TESTNG



We can implement retry logic in testNg using two ways



i. At Class level
ii. At Suite level(Recommended)

Class Level Implementation


> Create a class(Dynamic RetryAnalyzer) which implements IRetryAnalyzer
Define the max count how many times you need to run



public class dynamic RetryAnalyzer implements IRetryAnalyzer{
int count=1;
int maxRetryCount=3;
@OVerride
public boolean retry(ITestResult result){
if(result.getStatus()==ITestResult.FAILURE && count <=maxRetryCount)
count++;
return true;
}
return false;
}
}

> In the test which we are running define retryAnalyzer annotation

public class dummytest{

@Test(retryAnalyzer=DynamicRetryAnalyzer.class)
public void testOne{
system.out.println(" ")
Assert.assertTrue("false")
}}




Suite Level Implementation



> Create a class(Retry) which implements IAnnotationTransformer

public class Retry implement IAnnotationTransformer{
@OVerride
public void transform(ITestAnnotation annotation, Class areg1, Contstructor arg2, Method arg3){
IRetryAnalyzer retry=annotation.getRetryAnalyzer();
if(retry==null)
annotation.setRetryAnalyzer(CustomRetryListener.class)



> In Suite xml define Listeners and class(retry ) where it is defined

<suite name="suite" parallel="false>
<listeners>
<listener class=name="com.listener.Retry"></listener>
</listeners>

No comments:

Post a Comment