zoukankan      html  css  js  c++  java
  • Selenium WebDriver Log4j打印执行日志

    在自动化测试脚本的执行过程中,使用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] ------------------ 搜索功能 测试执行结束 ---------------

  • 相关阅读:
    从hadoop框架与MapReduce模式中谈海量数据处理
    Hadoop
    Clone Graph
    Gas Station
    ZigZag Conversion
    String to Integer (atoi)
    Palindrome Number
    Container With Most Water
    Longest Common Prefix
    求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
  • 原文地址:https://www.cnblogs.com/wakey/p/10865132.html
Copyright © 2011-2022 走看看