如何將測試程式的執行步驟記錄下來並且輸出為HTML?

 如何將測試程式的執行步驟記錄下來並且輸出為HTML?

這篇文章主要介紹一個小技巧可以將測試程式執行的過程,

透過Log的方式記錄下來,並且將該Log輸出為HTML。這裡主要透過Log4j來完成這件工作。

 

下載Log4j

http://mirrors.ibiblio.org/pub/mirrors/maven/log4j/jars/log4j-1.2.15.jar

Add Log4j

如果是使用 Eclipse的話,Build Path > “Configure Build Path“.

Add External Jars > 選取 “log4j-1.2.15.jar

Add_log4j_Jar

定義log4j.properties

這個檔案用來定義Log 相關的格式、內容與存放檔名。

[pastacode lang=”java” message=”log4j.properties” highlight=”” provider=”manual”]

log4j.rootLogger=INFO,HTML
 
log4j.appender.HTML=org.apache.log4j.FileAppender
 
log4j.appender.HTML.File=./log/testlog.html
 
log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout
log4j.appender.HTML.layout.Title=Application log
log4j.appender.HTML.layout.LocationInfo=true

[/pastacode]

Log4J的輸出

透過log4j.properties,我們可以定義哪些資訊內容要輸出到 log.例如 information , warning, error等。

範例程式如下

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

import org.apache.log4j.Logger;

public class LogLevelClass {
   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
   
   public static void main(String[] args) {
   
      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

[/pastacode]

 

Log4J Selenium 範例程式

接著就可以在Java 程式中使用 Log4j,範例程式如下:

[pastacode lang=”java” message=”Selenium log4j sample” highlight=”” provider=”manual”]

import java.util.concurrent.TimeUnit;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
 
 
public class Log4j {
    public static void main(String[] args) {
      
    // Here we need to create logger instance so we need to pass Class name for 
     //which  we want to create log file in my case Google is classname
        Logger logger=Logger.getLogger("Selenium Google Search");
        
 
       // configure log4j properties file
       PropertyConfigurator.configure("Log4j.properties");
 
 
        // Open browser
        WebDriver driver = new FirefoxDriver();
        logger.info("Launch FireFox");
        
        // Set implicit wait
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        logger.info("Define Implicit Wait for 10 sec");
        
 
        // Load application
        driver.get("https://www.google.com/");
        logger.info("Visit WWW.google.com");
      
 
        // type Selenium
        WebElement search = driver.findElement(By.name("q"));
        search.sendKeys("Selenium");
        logger.info("Send keys with 'Selenium'");
        
        search.submit();
        logger.info("submit the search");
        
        logger.warn("This is warning message test");
        logger.error("This is error message test");
        
        
    }
}

[/pastacode]

輸出的Log 檔案

最後檔案會就輸出在 \log\testlog.html

如下圖所示:

log4j_HTML

 

如果我們只希望輸出 warning and Error 的相關 log ,而不希望輸出info 的log 要如何做呢?

這時候我們只需要修改log4j.properties,將info 改為WARN 即可。

log4j.rootLogger=WARN,HTML

 

透過log4j,可以讓我們對於程式的 log輸出最更有效率的運用。

 

 

 

 

Leave a Reply

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