Step1:- Create Maven Project
Step2:- Add below dependencies
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.41.2</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<!--
https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.16.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.16.0</version>
</dependency>
package ExtendReport.ExtendReport;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Base {
public static WebDriver driver;
public void initialization(){
System.setProperty("webdriver.chrome.driver","F:\\drivernew123\\chromedriver.exe");
driver=new ChromeDriver();
driver.get("https://www.google.com/");
}
public void failed(String testMethodName) {
File scrFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
//FileUtils.copyFile( scrFile, new File("E:\\Seleniumbatch\\ExtendReport\\ScreenShot\\testFailure.jpg"));
FileUtils.copyFile( scrFile, new File("E:\\Seleniumbatch\\ExtendReport\\ScreenShot\\"+testMethodName+"_"+".jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Step3:- Create CustomListernerClass
package ExtendReport.ExtendReport;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class CustomListener extends Base implements ITestListener{ {
}
public void onTestStart(ITestResult result) {
// TODO Auto-generated method stub
}
public void onTestSuccess(ITestResult result) {
System.out.println("SuccessTest");
failed(result.getMethod().getMethodName());
}
public void onTestFailure(ITestResult result) {
System.out.println("Faied Test");
failed(result.getMethod().getMethodName());
}
public void onTestSkipped(ITestResult result) {
// TODO Auto-generated method stub
}
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// TODO Auto-generated method stub
}
public void onStart(ITestContext context) {
// TODO Auto-generated method stub
}
public void onFinish(ITestContext context) {
// TODO Auto-generated method stub
}
}
Step4:- Create ScreenShotFailuarclass
package ExtendReport.ExtendReport;
import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners(CustomListener.class)
public class ScreenShotFailuar extends Base{
@BeforeMethod
public void setUp(){
initialization();
}
@AfterMethod
public void tearDown(){
//driver.quit();
}
@Test
public void takeScreenShot1(){
Assert.assertEquals(false,true);
}
@Test
public void takeScreenShot2(){
Assert.assertEquals(false,true);
}
@Test
public void takeScreenShot3(){
Assert.assertEquals(false,true);
}
@Test
public void takeScreenShot4(){
String actualStr=driver.getTitle();
System.out.println(actualStr);
Assert.assertEquals(true,true);
driver.findElement(By.name("q")).sendKeys("IngeniousTechHub");
}
@Test
public void takeScreenShot5(){
Assert.assertEquals(true,true);
}
}
Below is the Output
}
No comments:
Post a Comment