Favourite Quote

Every artist was first an amateur. - Ralph Waldo Emerson The more difficulties one has to encounter, within and without, the more significant and the higher in inspiration his life will be. - Horace Bushnell

Wednesday, November 10, 2010

Generating HTML reports at granularity

Generating detailed reports with logs & screenshots.

Using the LoggingSelenium Interface.

1.Must have Selenium-client.jar for java
2.Junit4.jar
3.Commons-lang.jar
4.loggingselenium.jar

Include all the above jars in your classpath.

package com.est.org;



// import static com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertEquals;
// import static com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.ParseException;
import jxl.Sheet;
import jxl.Workbook;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.thoughtworks.selenium.HttpCommandProcessor;
import com.unitedinternet.portal.selenium.utils.logging.HtmlResultFormatter;
import com.unitedinternet.portal.selenium.utils.logging.LoggingCommandProcessor;
import com.unitedinternet.portal.selenium.utils.logging.LoggingDefaultSelenium;
import com.unitedinternet.portal.selenium.utils.logging.LoggingResultsFormatter;
import com.unitedinternet.portal.selenium.utils.logging.LoggingSelenium;
import com.unitedinternet.portal.selenium.utils.logging.LoggingUtils;
import org.openqa.selenium.server.*;

public class Loggingselenium
{

protected LoggingSelenium selenium;

private BufferedWriter loggingWriter;

private static final String RESULT_FILE_ENCODING = "UTF-8";

private static final String DEFAULT_TIMEOUT = "30000";

private static final String OPENQA_URL = "http://192.168.9.104:8080/";

private static final String SCREENSHOT_PATH = "screenshots";

private final String RESULTS_BASE_PATH = "C:/" + File.separator+ "loggingResults" + System.currentTimeMillis();

private String resultsPath = new File(RESULTS_BASE_PATH).getAbsolutePath();

private String screenshotsResultsPath = new File(RESULTS_BASE_PATH+ File.separator + SCREENSHOT_PATH).getAbsolutePath();

private SeleniumServer selServer;

@Before
public void setUp() {
if (!new File(screenshotsResultsPath).exists()) {
new File(screenshotsResultsPath).mkdirs();
}
final String resultHtmlFileName = resultsPath + File.separator+ "sampleResultSuccess.html";
loggingWriter = LoggingUtils.createWriter(resultHtmlFileName,Loggingselenium.RESULT_FILE_ENCODING, true);
LoggingResultsFormatter htmlFormatter = new HtmlResultFormatter(loggingWriter,Loggingselenium.RESULT_FILE_ENCODING);
htmlFormatter.setScreenShotBaseUri(Loggingselenium.SCREENSHOT_PATH+ "/");
htmlFormatter.setAutomaticScreenshotPath(screenshotsResultsPath);
if(selServer == null)
{
try
{
SeleniumServer selServer = new SeleniumServer();
selServer.start();
}catch(Exception e){}
}
LoggingCommandProcessor myProcessor = new LoggingCommandProcessor(new HttpCommandProcessor("localhost", 4444, "*firefox",OPENQA_URL), htmlFormatter);
myProcessor.setExcludedCommands(new String[]{});
selenium = new LoggingDefaultSelenium(myProcessor);
selenium.start();
}

@After
public void tearDown() {
selenium.stop();
try {
if (null != loggingWriter) {
loggingWriter.close();
}
} catch (IOException e) {}
}

@Test
public void loggingSelenium() throws InterruptedException,ParseException
{

selenium.setContext("loggingSelenium()");
selenium.open("/epc-client");
selenium.windowFocus();
selenium.windowMaximize();
selenium.captureScreenshot(screenshotsResultsPath + File.separator+ "openQaHomePage_" + LoggingUtils.timeStampForFileName()+ ".png");
try {

selenium.click("link=Search UPRN by Address Web Service");
selenium.waitForPageToLoad(DEFAULT_TIMEOUT);
selenium.click("//input[@type='radio'][6]");
FileInputStream fi = new FileInputStream("C:\\Selenium\\datainput\\webservices.xls");
Workbook wBk = Workbook.getWorkbook(fi);
Sheet sht = wBk.getSheet("webService");
selenium.type("request",sht.getCell(3,0).getContents());
selenium.waitForPageToLoad(DEFAULT_TIMEOUT);
selenium.wait(30000);
selenium.click("//input[@name='Submit' and @value='submit']");
selenium.waitForPageToLoad(DEFAULT_TIMEOUT);
String textArea = selenium.getValue("//textarea[@name='header']");
if(textArea.contains("null"))
{
System.out.println("\n Invalid request XML submitted!!!!");

}
} catch (Exception e) {}
}
} automationwithselenium.blogspot.com-Google pagerank and Worth

No comments:

Post a Comment