Selenium/Java 如何產生美觀的測試結果報告

Selenium/Java 如何產生美觀的測試結果報告

這篇文章主要說明如何產生一個美觀又專業的測試結果報告。

Selenium/Java 的網站自動化測試如果是使用 TestNG,

TestNG 內建測試結果報告,有沒有其他工具可以讓測試結果報告更”美觀”呢?

這個工具的主角就是 ExtentReports。這個工具相當於 ExtentReports = Log4J + TestNG Testing Reports + Pie/Table Charts

在介紹ExtentReports之前,我們先看看 testNG report.

TestNG會在執行後,自動產生 test-output 目錄,index.html就會看到測試結果報告,如下圖所示:

 

ExtentReports

接著我們要介紹的是 extentReports,可參考下列網址連結。

Version 2.0+. View sample

http://relevantcodes.com/extentreports-for-selenium/

http://extentreports.relevantcodes.com/

下載 ExtentReports JAR 檔: http://relevantcodes.com/wp-content/plugins/download-monitor/download.php?id=17

 

測試情境

接著我們用 google 頁面為例子,測試情境如下

  • 1. 啟動 FireFox瀏覽器
  • 2. 瀏覽 Google.com
  • 3. 驗證Window title 是否含有 Google

 

ExtentReoprt 使用說明

宣告 ExtentReports

  • private static ExtentReports extent;
  • ExtentTest mylogger;

設定 ExtentReports環境變數

  • extent = new ExtentReports(“d:\\extentReport\\ExtentReoprt3.html”, true);
    extent.config().reportName(“Selenium Web testing”);
    extent.config().reportHeadline(“Google Page verification”);extent.addSystemInfo(“Selenium Version”, “2.46”);
    extent.addSystemInfo(“Environment”, “Prod”);

 

收集log 資訊

  • mylogger = extent.startTest(“Verify google Title”,”This is description”);
  • mylogger.log(LogStatus.INFO, “launch FireFox”);
  • mylogger.log(LogStatus.PASS, “The result is right.”);

將圖檔畫面加入到測試報告中

  • mylogger.log(LogStatus.INFO, “Screencast below: ” + mylogger.addScreenCapture(“D:\\extentReport\\GoogleHomePage.png”));

結束收集資訊

  • extent.endTest(mylogger);
  • extent.flush();

 

 

程式範例

[pastacode lang=”java” message=”” highlight=”” provider=”manual”]

package mySelenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
import com.relevantcodes.extentreports.ExtentReports;

public class ExtentReoprtsSample {
	private static ExtentReports extent;
	WebDriver driver = new FirefoxDriver();
	ExtentTest mylogger;
	
	@BeforeClass
	public void setUP(){
		extent = new ExtentReports("d:\\extentReport\\ExtentReoprt3.html", true);
		extent.config().reportName("Selenium Web testing");
		extent.config().reportHeadline("Google Page verification");
		
		extent.addSystemInfo("Selenium Version", "2.46");
		extent.addSystemInfo("Environment", "Prod");
		
		
		mylogger = extent.startTest("Verify google Title","This is description");

	}
	
	@AfterClass
	public void tearDown(){
		driver.quit();
		extent.endTest(mylogger);
		extent.flush();
		
	}
	
	@Test
	public void verifyTitle(){

        
		mylogger.log(LogStatus.INFO, "launch FireFox");
		
		
		
		driver.manage().window().maximize();

		
		mylogger.log(LogStatus.INFO, "visit google Browser");
		driver.get("http://www.google.com/");
		
		mylogger.log(LogStatus.INFO, "get google title");
		String title  = driver.getTitle();
		
		mylogger.log(LogStatus.INFO, "verify if the title contains Google");
		
		try{
			Assert.assertTrue(title.contains("Google"));
	      	mylogger.log(LogStatus.PASS, "The result is right.");
	        
	    }catch(AssertionError e)
	    {
	      	mylogger.log(LogStatus.FAIL, "The result is wrong.");
	      	
	    }finally{

	    	mylogger.log(LogStatus.INFO, "Screencast below: " + mylogger.addScreenCapture("D:\\extentReport\\GoogleHomePage.png"));
	    }

	}
}

[/pastacode]

 

Leave a Reply

Your email address will not be published. Required fields are marked *