• 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] ------------------ 搜索功能 测试执行结束 ---------------

  • 相关阅读:
    怎样查看Oracle的数据库名称sid
    request.getRemoteAddr request.getRemoteHost()
    Oracle中添加自动编号的序列
    google chrome 快捷键
    MyEclipse快捷键大全( 再排版)
    Java正则表达式应用详解
    Spring3.1 Cache注解
    Java本周总结1.
    jquery ui 自动补全
    用字符串的length实现限制文本框长度
  • 原文地址:https://www.cnblogs.com/wakey/p/10865132.html
Copyright © 2020-2023  润新知