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

Selenium WebDriver Log4j打印执行日志的更多相关文章

  1. mybatis结合log4j打印SQL日志

    mybatis结合log4j打印SQL日志 1.Maven引用jar包 默认的mybatis不能打印出SQL日志,不便于查看调试,须要结合log4jdbc-log4j2就能够完整的输入SQL的调试信息 ...

  2. 使用Log4在测试过程中打印执行日志 及配置log4j.properties!

    http://zengxiantao.iteye.com/blog/1881706 1.环境配置:到网上下载log4j-1.2.17.jar包!完后 添加到 项目的build path 中即可! 2. ...

  3. 2.9 log4j 在测试过程中打印执行日志

    Apache Log4j配置说明/log4j的分层打印    http://blog.csdn.net/zzy7075/article/details/53763728

  4. log4j打印错误日志输出 利用sql取出的值放在list集合中,集合中的字段类型为映射类类型

    public ServiceResult<List<KefuDetail>> MaxRespondtime(Date startDate,Date endDate, Strin ...

  5. mybatis下使用log4j打印sql语句和执行结果

    转载自:https://www.cnblogs.com/jeevan/p/3493972.html 本来以为很简单的问题, 结果自己搞了半天还是不行; 然后google, baidu, 搜出来各种方法 ...

  6. 《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)

    1.简介 Apache Log4j 是一个非常古老的日志框架,并且是多年来最受欢迎的日志框架. 它引入了现代日志框架仍在使用的基本概念,如分层日志级别和记录器. 2015 年 8 月 5 日,该项目管 ...

  7. log4j+mybatis打印数据库日志

    参考文献:一:http://blog.csdn.net/rangqiwei/article/details/50825090 二:http://www.mybatis.org/mybatis-3/zh ...

  8. log4j中存在日志无法打印问题解决

    我在项目中配置双数据中心,原来类包名称前最都是一致的,后来由于项目的需要根据数据来源命名不同的类包名称,这个导致一个问题,sql语句运行无法正常打印出来,提示以下内容: log4j:WARN No a ...

  9. 转:selenium webdriver 执行javascript代码

    在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa ...

随机推荐

  1. hibernate的get方法和load方法区别

    读者需注意:Hibernate版本不同,运行机制不太一样,以下是hibernate3.x作为讲解 get方法: Hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然 ...

  2. JDK11 | 第三篇 : 局部变量类型推断

    文章首发于公众号<程序员果果> 地址 : https://mp.weixin.qq.com/s/PB0Mw4bzjDML7nto2M8x2w 一.简介 Java局部变量类型推断(LVTI) ...

  3. RandomAccessFile类使用说明

    RandomAccessFile类是Java Io体系中功能最为丰富的文件访问类,它提供了众多的文件访问方法.RandomAccessFile类支持“随机访问”方式,这里的“随机”是指程序可以直接跳到 ...

  4. [2019杭电多校第三场][hdu6609]Find the answer(线段树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6609 大致题意是求出每个位置i最小需要将几个位置j变为0(j<i),使得$\sum_{j=1}^ ...

  5. GCD and LCM HDU 4497 数论

    GCD and LCM HDU 4497 数论 题意 给你三个数x,y,z的最大公约数G和最小公倍数L,问你三个数字一共有几种可能.注意123和321算两种情况. 解题思路 L代表LCM,G代表GCD ...

  6. BZOJ 4987 (树形DP)

    ###题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4987 ###分析 先考虑贪心,显然k个节点形成一棵树 求出树的直径,显然直径应该只被经 ...

  7. Spring boot集成Swagger,并配置多个扫描路径

    Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...

  8. tomcat闪屏是jdk JAVA_HOEM环境变量配置问题

    JAVA_HOME=D:\jdk.18

  9. RAS

    Reliability 高可靠性 Availability 高可用性 Serviceability 高服务性

  10. $2019$ 暑期刷题记录1:(算法竞赛DP练习)

    $ 2019 $ 暑期刷题记录: $ POJ~1952~~BUY~LOW, BUY~LOWER: $ (复杂度优化) 题目大意:统计可重序列中最长上升子序列的方案数. 题目很直接的说明了所求为 $ L ...