Advance Selenium Reporting with Screenshots
package ff;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
public class ExcentReport {
ExtentReports report;
ExtentTest logger;
WebDriver driver;
@Test
public void VerifyBlogTitle()
{
//report path
report=new ExtentReports("D:\\Learn\\extent Report\\Monika.html");
logger= report.startTest("Test:VerifyBlogTitle");
logger.log(LogStatus.INFO, "Steps:1", "Invoke Firefox Browser");
logger.log(LogStatus.INFO, "Steps:2", "Invoke http://www.learn-automation.com URL");
logger.log(LogStatus.INFO, "Steps:3", "Verify page title");
logger.log(LogStatus.INFO, "Step:1:Invoke Browser");
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
driver= new ChromeDriver();
logger.log(LogStatus.INFO, "Step:2:Maximize Window");
driver.manage().window().maximize();
logger.log(LogStatus.INFO, "Step:3:Invoke http://www.learn-automation.com URL");
driver.get("http://www.google.com/");
logger.log(LogStatus.INFO, "Step:3:Get Title");
String title = driver.getTitle();
logger.log(LogStatus.INFO, "Verify title");
Assert.assertTrue(title.contains("Selenium"));
logger.log(LogStatus.PASS, "VerifyBlogTitle");
}
@AfterMethod
public void teardown(ITestResult result)
{
if(result.getStatus()==ITestResult.FAILURE)
{
String screenshotpath =Screenshotmethod.capturescreenshot(driver, result.getName());
String image =logger.addScreenCapture(screenshotpath);
logger.log(LogStatus.FAIL, "VerifyBlogTitle",image);
}
report.endTest(logger);
report.flush();
driver.get("D:\\Learn\\extent Report\\Monika.html");
}
}
package ff;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
public class ExcentReport {
ExtentReports report;
ExtentTest logger;
WebDriver driver;
@Test
public void VerifyBlogTitle()
{
//report path
report=new ExtentReports("D:\\Learn\\extent Report\\Monika.html");
logger= report.startTest("Test:VerifyBlogTitle");
logger.log(LogStatus.INFO, "Steps:1", "Invoke Firefox Browser");
logger.log(LogStatus.INFO, "Steps:2", "Invoke http://www.learn-automation.com URL");
logger.log(LogStatus.INFO, "Steps:3", "Verify page title");
logger.log(LogStatus.INFO, "Step:1:Invoke Browser");
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
driver= new ChromeDriver();
logger.log(LogStatus.INFO, "Step:2:Maximize Window");
driver.manage().window().maximize();
logger.log(LogStatus.INFO, "Step:3:Invoke http://www.learn-automation.com URL");
driver.get("http://www.google.com/");
logger.log(LogStatus.INFO, "Step:3:Get Title");
String title = driver.getTitle();
logger.log(LogStatus.INFO, "Verify title");
Assert.assertTrue(title.contains("Selenium"));
logger.log(LogStatus.PASS, "VerifyBlogTitle");
}
@AfterMethod
public void teardown(ITestResult result)
{
if(result.getStatus()==ITestResult.FAILURE)
{
String screenshotpath =Screenshotmethod.capturescreenshot(driver, result.getName());
String image =logger.addScreenCapture(screenshotpath);
logger.log(LogStatus.FAIL, "VerifyBlogTitle",image);
}
report.endTest(logger);
report.flush();
driver.get("D:\\Learn\\extent Report\\Monika.html");
}
}
---------------------------------------------------------------------------------------------------------
package ff;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
public class Screenshotmethod {
public static String capturescreenshot(WebDriver driver,String screenshotName)
{
try
{
TakesScreenshot ts = (TakesScreenshot)driver;
File source = ts.getScreenshotAs(OutputType.FILE);
String dest ="D:\\Learn\\extent Report\\screenshot\\"+screenshotName+".png";
File destination = new File(dest);
FileUtils.copyFile(source, destination);
System.out.println("Screenshot taken");
return dest;
}
catch(Exception e)
{
System.out.println("Exception While taking screenshot"+ e.getMessage());
return e.getMessage();
}
}
}
package ff;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
public class Screenshotmethod {
public static String capturescreenshot(WebDriver driver,String screenshotName)
{
try
{
TakesScreenshot ts = (TakesScreenshot)driver;
File source = ts.getScreenshotAs(OutputType.FILE);
String dest ="D:\\Learn\\extent Report\\screenshot\\"+screenshotName+".png";
File destination = new File(dest);
FileUtils.copyFile(source, destination);
System.out.println("Screenshot taken");
return dest;
}
catch(Exception e)
{
System.out.println("Exception While taking screenshot"+ e.getMessage());
return e.getMessage();
}
}
}
Jar require for this:
extentreports-2.40.jar
Report: