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
Can we integrate this with TestNG ?
ReplyDeleteCan we get SKIPPED test in report, if yes how?
ReplyDeleteCan we get SKIPPED test in report, if yes how?
ReplyDeletePrasanth
ReplyDeleteAre you still Active here ? have a query ?
Thank You For your Awosme Tutorials On Selenium Webdriver With Java it will Most Usefull For Begginers like me and more and who are trying to learn own from Web. Once Again Thank you For Your Effort.
ReplyDeleteCan we mail the taken screenshots?
ReplyDeleteam not able to edit the heading of the report, can anyone help me.
ReplyDeleteI tried to change using below code, but no luck.
extent.config().documentTitle("Title");
extent.config().reportName("Reportname");
extent.config().reportHeadline("heading");
Any one has idea on how to incorporate TestNG log content in the Extent Reports HTML page ?
ReplyDeletePlease provide source code for extent reports to store testng test results into sql server database.
ReplyDeleteI have read few stuffs related to log content and extend reports in a website.i hope that covers the specific content related to Creating Step Logs,Current RunStatus,Test Categories, Assign test authors and inserting html that mainly focus best selenium training.
ReplyDeletehttp://extentreports.relevantcodes.com/java/
Learn how to use Selenium from beginner level to advanced techniques which is taught by experienced working professionals. With our selenium Training in Chennai you’ll learn concepts in expert level with practical manner.
ReplyDeleteThanks for sharing this blog..it was so informative..keep update..check this also selenium training in chennai selenium training in velachery
ReplyDelete