What is ExtentReport?
ExtentReports is a HTML reporting library for Selenium WebDriver for Java which is extremely easy to use and creates beautiful execution reports. It shows test and step summary, test steps and status in a toggle view for quick analysis
Download
Download the jar below:Snapshot of Extent report After Executing the Script
Program Steps:
We are going to write three different testcases.
- Pass
- Warning
- Fail
TestCase with Pass Result
- Navigate to http://www.guvi.in
- Click on Sign-in
- Enter the credientials
- Check the URL is correct or not after login
- Verify with the Wrong URL (static String Afterloginfail="http://www.guvi.in/")
TestCase with fail Result
- Click on Menu
- Select Tech Challenges
- Verify With wrong URL.
Source Code:
import java.io.File;
import java.io.IOException;
import java.sql.Date;
import java.util.UUID;
import
java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.reflect.FieldUtils;
import
org.openqa.selenium.By;
import
org.openqa.selenium.OutputType;
import
org.openqa.selenium.TakesScreenshot;
import
org.openqa.selenium.WebDriver;
import
org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.Assert;
import
com.relevantcodes.extentreports.DisplayOrder;
import
com.relevantcodes.extentreports.ExtentReports;
import
com.relevantcodes.extentreports.GridType;
import
com.relevantcodes.extentreports.LogStatus;
import com.sun.jna.platform.FileUtils;
public class ReportDemo {
static final ExtentReports extent=ExtentReports.get(ReportDemo.class);
static WebDriver driver=new FirefoxDriver();
static String AfterLogin="http://www.guvi.in/PublicPlaylists";
static String reportLocation = "C:\\Tools\\reports\\";
static String Afterloginfail="http://www.guvi.in/" ;
static String imageLocation = "images/";
static String jobs="http://www.guvi.in/jobs";
static String jobsfail="http://www.guvi.in/job";
public static void main(String[] args) throws InterruptedException
{
// TODO Auto-generated method
stub
extent.init(reportLocation+"ScreenshotReport.html", true,DisplayOrder.BY_OLDEST_TO_LATEST,GridType.STANDARD);
extent.config().displayTestHeaders(true);
extent.config().documentTitle("Guvi test
Reports");
extent.config().reportHeadline("Automation
Test Report for Guvi");
//Start of TC1 with
pass result
extent.startTest("This Test to
check the login crediential with Correct");
extent.config().displayCallerClass(false);
runWithCorrectCredientails();
extent.attachScreenshot(createScreenshot(driver),"This is to
attach screenshot for test");
extent.log(LogStatus.PASS, "Link", "Check the
Link After Login: <a
href='http://www.guvi.in/PublicPlaylists'>link</a>.");
extent.config().useExtentFooter(false);
extent.endTest();
//Fail
extent.startTest("This Test to
check is to verify the redirection link");
extent.config().displayCallerClass(false);
if(driver.getTitle().equals(Afterloginfail)) {
extent.log(LogStatus.PASS, "Check page
title", "Page title is " + AfterLogin);
} else {
extent.log(LogStatus.WARNING, "Check page
title", "Incorrect login page title " + Afterloginfail);
}
extent.endTest();
extent.startTest("This is used
to check jobportal url ");
extent.config().displayCallerClass(false);
Thread.sleep(10000);
driver.findElement(By.xpath("html/body/header/div[2]/div/div[1]/ul/li/button")).click();
driver.findElement(By.cssSelector("a.li-boot")).click();
if(driver.getTitle().equals(Afterloginfail)) {
extent.log(LogStatus.PASS, "Click on job
portal", "Page title is " + jobs);
} else {
extent.log(LogStatus.FAIL, "Check job
portal url", "Incorrect login page title " + jobsfail);
}
extent.endTest();
driver.quit();
}
public static void
runWithCorrectCredientails() throws InterruptedException
{
driver.get("http://www.guvi.in/");
driver.manage().window().maximize();
driver.findElement(By.xpath("html/body/header/div[2]/div/div[3]/ul/li[1]/a")).click();
Thread.sleep(5000);
driver.findElement(By.id("login_email")).sendKeys("kk.prashanth65@gmail.com");
Thread.sleep(5000);
driver.findElement(By.id("login_password")).sendKeys("test123");
Thread.sleep(5000);
driver.findElement(By.id("login_button")).click();
Thread.sleep(5000);
String
expgeturl=driver.getCurrentUrl();
driver.manage().timeouts().implicitlyWait(20,
TimeUnit.SECONDS);
Thread.sleep(8000);
if(driver.getCurrentUrl().equals(AfterLogin))
{
extent.log(LogStatus.PASS, "Check page
title", "Page title is " + expgeturl);
}
else {
extent.log(LogStatus.FAIL, "Check page
title", "Incorrect login page title " + driver.getTitle());
}
}
public static String
createScreenshot(WebDriver driver) {
UUID uuid = UUID.randomUUID();
// generate screenshot as a file object
File scrFile =
((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
// copy file object to designated location
org.apache.commons.io.FileUtils.copyFile(scrFile,
new File(reportLocation + imageLocation + uuid + ".png"));
System.out.println(imageLocation + uuid + ".png");
} catch (IOException e) {
System.out.println("Error while
generating screenshot:\n" + e.toString());
}
return reportLocation + imageLocation + uuid + ".png";
}
}
Run the program
TestCase with Pass Result