selenium+testng入引Log4j日志详解

时间:2022-03-28 04:35:04
  • 1需要用到log4j-1.2.X.jar包,怎么引用就不多说了。

  • 2在根目录下新建log4j.xml,http://www.cnblogs.com/guogangj/p/3931397.html ,这个里面讲的代码直接就能用,上面注释也比较详细。生成log按照日期命名,在${user.home}/logs/website/info.log这个路径下。

  • 3在util包里面增加log的一些方法

import org.apache.log4j.Logger;

public class Log {

    private static Logger Log = Logger.getLogger(Log.class.getName());
    public static void startTestCase(String sTestCaseName){

        Log.info("---------------------------------------------------");
        Log.info("---------- "+sTestCaseName+" ----------------");
    }
    public static void endTestCase(String sTestCaseName){
        Log.info("---------- "+"测试用例执行结束"+" ----------------");        
        Log.info("----------------------------------------------------");
    }
    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);     
    }


}
  • 4在ui自动化脚本的代码里面如何使用,在待测方法前增加下面的代码,如果想做的细致些,可以在每个步骤上加上日志,方便查看
@org.testng.annotations.BeforeClass
    public void BeforeClass(){
        DOMConfigurator.configure("log4j.xml");
    }
@Test (priority=0,enabled=true)
    public void testLoginAndPage() throws MalformedURLException{
    Log.info(……);
    Log.warn(……);
    ……
     }

输出的日志类似于:
selenium+testng入引Log4j日志详解

  • 5为什么要引入日志
    • ui自动化受到页面因素不太稳定,如果没有详细的日志辅助判断,无法判断真是的问题出在哪里,比如如果前面的程序就已经报错,后续会提示XX元素找不到,但是这个元素命名还在,为了复现问题,不得不重新跑一遍,肉眼盯着。为了提升效率,做到无人值守,所以日志需要打印的详细一些。
    • 这些日志是为了排查问题用,所以不需要打印到report里面,report里面还是应该保持整洁明了。