Selenium WebDriver Log4j打印执行日志

时间:2021-06-23 04:37:54

在自动化测试脚本的执行过程中,使用log4j在日志文件中打印执行日志,用于监控和后续调试脚本。

Log4j.xml 文件

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
    <!-- 日志输出到文件 -->
    <appender name="fileAppender" class="org.apache.log4j.FileAppender">
        <param name="Threshold" value="INFO" />
        <!-- 输出的日志文件名 -->
        <param name="File" value="logfile.log" />
        <!-- 设置日志输出的样式 -->`
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 日志输出格式 -->
            <param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" />
        </layout>
    </appender>
    <root>
        <!-- 设置日志级别  -->
        <level value="INFO" />
        <appender-ref ref="fileAppender" />
    </root>
</log4j:configuration>

 

Log工具类

import org.apache.log4j.Logger;

public class Log {

    // 初始化Log4j日志
    private static Logger Log = Logger.getLogger(Log.class.getName());

    // 打印测试用例开头的日志
    public static void startTestCase(String sTestCaseName) {
        Log.info("------------------ " + sTestCaseName + "  " +"开始执行 ------------------");
    }

    //打印测试用例结束的日志
    public static void endTestCase(String sTestCaseName) {
        Log.info("------------------ " + sTestCaseName + "  " +"测试执行结束 ---------------");

    }

    public static void info(String message) {
        Log.info(message);
    }

    public static void warn(String message) {
        Log.warn(message);
    }

    public static void error(String message) {
        Log.error(message);
    }

    public static void fatal(String message) {
        Log.fatal(message);
    }

    public static void debug(String message) {
        Log.debug(message);
    }

}

 

测试代码

import org.apache.log4j.xml.DOMConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class Log4jTest {
    
  WebDriver driver;
    
    @BeforeMethod
    public void beforeMethod(){
        System.setProperty("webdriver.chrome.driver", "e:\\chromedriver.exe");
        driver = new ChromeDriver();
    }
    
    @AfterMethod
    public void afterMethod(){
        driver.quit();
    }
    
    @BeforeClass
    public void beforeClass(){
        DOMConfigurator.configure("log4j.xml");
    }
    
    @Test
    public void test(){
        String url = "http://www.baidu.com";
        Log.startTestCase("搜索功能");
        driver.get(url);
        Log.info("打开百度首页");
        driver.findElement(By.id("kw")).sendKeys("selenium");
        Log.info("输入搜索关键字'selenium'");
        driver.findElement(By.id("su")).click();
        Log.info("单击搜索按钮");
        Log.endTestCase("搜索功能");
    }
}

 

输出的日志文件如下:

2019-05-14 22:36:53,100 INFO [Log] ------------------ 搜索功能 开始执行 ------------------
2019-05-14 22:36:58,747 INFO [Log] 打开百度首页
2019-05-14 22:36:58,943 INFO [Log] 输入搜索关键字'selenium'
2019-05-14 22:36:59,050 INFO [Log] 单击搜索按钮
2019-05-14 22:36:59,050 INFO [Log] ------------------ 搜索功能 测试执行结束 ---------------