美文网首页
Appium ios 想为你的测试用例添加log吗

Appium ios 想为你的测试用例添加log吗

作者: abrila | 来源:发表于2018-09-14 14:38 被阅读0次
  • 使用 org.apache.log4j类记录测试用例,并生成日志
public class Log {
    private final Class<?> clazz;
    private Logger logger;
    static String projectRootPath = new File(System.getProperty("user.dir")).getPath().concat("/");
    static String src = "test-output/log";
    //设置日期格式
    static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    //获取当前日期
    static String date = dateFormat.format(new Date()).toString();
    public Log(Class<?> clazz) {
        this.clazz = clazz;
    //Logger.getLogger的方法是调用的是LogManager.getLogger()方法,所以这两个方法都是返回logger
        this.logger = Logger.getLogger(this.clazz);
        Log.initlog4j();
        System.out.println(System.getProperty("user.dir"));
    }

    //初始化log4j,设置log4j的配置文件log4j.Properties
    private static void initlog4j() {
        //创建Propderties对象
        Properties prop = new Properties();
        /*Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG
         log4j.rootLogger=日志级别,appender1, appender2, ….,需在控制台输入,只需将其中一个appender定义为stdout即可*/
        prop.setProperty("log4j.rootLogger", "INFO,CONSOLE,E,F");    
        prop.setProperty("log4j.appender.CONSOLE", "org.apache.log4j.ConsoleAppender");
        /* log4j.appender.appender1.layout=org.apache.log4j. PatternLayout(可以灵活的指定布局格式)*/
        prop.setProperty("log4j.appender.CONSOLE.layout", "org.apache.log4j.PatternLayout");
        /*log4j.appender.appender1.layout.ConversionPattern=日志输出格式
           例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
          %c 输出日志信息所属的类的全名
          %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
          %f 输出日志信息所属的类的类名
          %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
          %m 输出代码中指定的信息,如log(message)中的message
          %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
          %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。   */    
        prop.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern", "[%d{YYYY-MM-dd HH:mm:ss,SSS}] %-5p %c %m%n");
        /*projectRootPath + src = "/Users/gele/intellijj/test-output/log"*/
        File dir = new File(projectRootPath + src);
        String filepath = dir.getAbsolutePath() + "/" + "log_" + date + ".log";
        /*log4j.appender.appender1=org.apache.log4j.FileAppender(文件)日志输出到文件中*/
        prop.setProperty("log4j.appender.E", "org.apache.log4j.FileAppender");
        /*log4j.appender.appender1.File=文件目录及文件*/
        prop.setProperty("log4j.appender.E.file", filepath);
        prop.setProperty("log4j.appender.E.layout", "org.apache.log4j.PatternLayout");
        prop.setProperty("log4j.appender.E.layout.ConversionPattern", "[%d{YYYY-MM-dd HH:mm:ss,SSS}] %-5p %c %m%n");
        prop.setProperty("log4j.appender.F", "org.apache.log4j.FileAppender");
        String filepathHtml = dir.getAbsolutePath() + "/" + "log_" + date + ".html";
        prop.setProperty("log4j.appender.F.file", filepathHtml);
        prop.setProperty("log4j.appender.F.layout", "org.apache.log4j.HTMLLayout");
        //prop.setProperty("log4j.appender.F.layout.ConversionPattern", "[%d{YYYY-MM-dd HH:mm:ss,SSS}] %-5p %c %m%n");
        PropertyConfigurator.configure(prop);
    }
    public void info(String message) {
        logger.info(message);
    }
    public void warn(String message) {
        logger.warn(message);
    }
    public void error(String message) {
        logger.error(message);
    }
    public void debug(String message) {
        logger.debug(message);
    }
}

  关于这段代码可以参考以下文章以及一个github项目。源码来自于此项目。
https://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html
https://github.com/Hyiran/AppiumXM


  以下是我写的关于这个自建的Log类的TestNG测试类,便于更好的理解

import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class testterlog{
    Log lo = new Log(testterlog.class);
    public testterlog(){
        lo.warn("hello dalele");
    }
    @Test
            public void f()
     {
        testterlog iu = new testterlog();
    }
}

  最后在控制台输出


image.png

  test-output下出现了设置的log文件


image.png
  html文件最终展示效果如下:
image.png

相关文章

网友评论

      本文标题:Appium ios 想为你的测试用例添加log吗

      本文链接:https://www.haomeiwen.com/subject/pzfogftx.html