logger模块和path一样都是接口自动化框架的一些基础模板,也是用的最多的,基本上每个方法都会用的
logger模板的作用是用来打印日志的,让我们在执行接口自动化用例失败的时候可以更好的定位问题,看到是具体那条用例执行失败的。
logger模块主要用的库是logging
1,先引入库
import logging
import os
import time
from common.path import LOG_PATH
2,创建Log类
class Log(object):
3,初始化操作,获取日志文件的存放路径,若不存在则新建,这边引用了之前创建的path模块的LOG_PATH
# 编写日志类,供其他模块进行调用
def __init__(self, logger):
if not os.path.exists(LOG_PATH): # 初始化操作,获取日志文件的存放路径,若不存在则新建
os.mkdir(LOG_PATH)
4,设置日志文件名称格式
self.log_name = os.path.join(LOG_PATH, '%s.log' % time.strftime('%Y-%m-%d')) # 设置日志文件名称格式
5,整体的logger模块如下
class Log(object):
# 编写日志类,供其他模块进行调用
def __init__(self, logger):
if not os.path.exists(LOG_PATH): # 初始化操作,获取日志文件的存放路径,若不存在则新建
os.mkdir(LOG_PATH)
self.log_name = os.path.join(LOG_PATH, '%s.log' % time.strftime('%Y-%m-%d')) # 设置日志文件名称格式
self.logger = logging.getLogger(logger)
if not self.logger.handlers:
self.logger.setLevel(logging.DEBUG)
# 创建一个Handler将日志文件写入到日志文件中
fh = logging.FileHandler(self.log_name, 'a', encoding='utf-8')
fh.setLevel(logging.DEBUG)
# 创建一个Handler将日志文件写入到控制台中
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 设置日志的输出格式
self.formatter = logging.Formatter('%(asctime)s %(filename)s %(name)s '
'[line:%(lineno)d] %(levelname)s %(message)s')
ch.setFormatter(self.formatter)
fh.setFormatter(self.formatter)
# 给logger添加handler
self.logger.addHandler(fh)
self.logger.addHandler(ch)
def get_logger(self):
return self.logger
这样logger模块就写好了,基础打好,接下来写自动化框架就好写了
下一章:operate_yaml模块 操作yaml文件