Skip to content

Instantly share code, notes, and snippets.

@SarahElson
SarahElson / testng-failed.xml
Created April 11, 2024 08:15
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Failed suite [LambdaTest ecommerce playground website test suite ]" guice-stage="DEVELOPMENT">
<listeners>
<listener class-name="io.github.mfaisalkhatri.listeners.RetryListener"/>
</listeners>
<test thread-count="5" name="Search Product tests (failed)">
<parameter name="browser" value="remote_chrome_lambdatest"/>
<classes>
<class name="io.github.mfaisalkhatri.tests.retrytests.RetryFailedTests">
@SarahElson
SarahElson / testng-retry-test.xml (with listeners)
Created April 11, 2024 08:04
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="LambdaTest ecommerce playground website test suite ">
<listeners>
<listener class-name="io.github.mfaisalkhatri.listeners.RetryListener"/>
</listeners>
<test name="Search Product tests ">
<parameter name="browser" value="remote_chrome_lambdatest"/>
<classes>
<class name="io.github.mfaisalkhatri.tests.retrytests.RetryFailedTests">
@SarahElson
SarahElson / testng-retry-tests.xml
Created April 11, 2024 07:57
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="LambdaTest ecommerce playground website test suite ">
<test name="Search Product tests ">
<parameter name="browser" value="remote_chrome_lambdatest"/>
<classes>
<class name="io.github.mfaisalkhatri.tests.retrytests.RetryFailedTests">
<methods>
<include name="testSearchProduct"/>
<include name="testNavigationToLoginPage"/>
@SarahElson
SarahElson / SearchResultPage
Created April 11, 2024 07:19
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
public class HomePage {
public SearchResultPage searchProduct (final String productName) {
enterText (searchBox (), productName);
searchButton ().click ();
return new SearchResultPage ();
}
private WebElement searchBox () {
return getDriver ().findElement (By.name ("search"));
@SarahElson
SarahElson / RetryFailedTests
Created April 11, 2024 07:17
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
package io.github.mfaisalkhatri.tests.retrytests;
import static io.github.mfaisalkhatri.drivers.DriverManager.getDriver;
import static org.testng.Assert.assertEquals;
import io.github.mfaisalkhatri.listeners.Retry;
import io.github.mfaisalkhatri.pages.lambdatestecommerce.HomePage;
import io.github.mfaisalkhatri.pages.lambdatestecommerce.LoginPage;
@SarahElson
SarahElson / DriverManager
Created April 11, 2024 05:45
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
public class DriverManager {
private static final ThreadLocal<WebDriver > DRIVER = new ThreadLocal<> ();
private static final String GRID_URL = "@hub.lambdatest.com/wd/hub";
private static final Logger LOG = LogManager.getLogger ("DriverManager.class");
private static final String LT_ACCESS_KEY = System.getProperty ("LT_ACCESS_KEY");
private static final String LT_USERNAME = System.getProperty ("LT_USERNAME");
public static void createDriver (final Browsers browser) {
setupChromeInLambdaTest ();
@SarahElson
SarahElson / pom.xml
Created April 11, 2024 05:41
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.mfaisalkhatri</groupId>
<artifactId>selenium4poc</artifactId>
<version>1.0-SNAPSHOT</version>
@SarahElson
SarahElson / testng.xml
Created April 11, 2024 05:29
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Demo Test Suite ">
<listeners>
<listener class-name="RetryListener"/>
</listeners>
<test name="Retry failed tests ">
<parameter name="browser" value="chrome"/>
<classes>
<class name="demo.tests.retrytests.RetryFailedTests">
@SarahElson
SarahElson / Retry
Created April 11, 2024 05:26
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
package io.github.mfaisalkhatri.listeners;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
public class Retry implements IRetryAnalyzer {
private static final Logger LOG = LogManager.getLogger ("Retry.class");
private static final int maxTry = 3;
private int count = 0;
@Override
@SarahElson
SarahElson / HomePage.java
Created April 11, 2024 05:23
How To Retry Failed Tests Using IRetryAnalyzer In TestNG
public class HomePage {
public LoginPage navigateToLoginPage () {
openMyAccountMenu ().loginLink ()
.click ();
return new LoginPage ();
}
private HomePage openMyAccountMenu () {
getDriver ().findElement (By.linkText ("My account"))
.click ();
return this;