接口测试框架(-)—日志模块封装

初建框架对于公共类中日志的模块进行封装,以便测试模块可以直接调用

# coding:utf-8 import logging, time import os # log_path是存放日志的路径 cur_path = os.path.dirname(os.path.realpath(__file__)) log_path = os.path.join(os.path.dirname(cur_path), 'logs') # 如果不存在这个logs文件夹,就自动创建一个 if not os.path.exists(log_path):os.mkdir(log_path) class Log():     def __init__(self):         # 文件的命名         self.logname = os.path.join(log_path, '%s.log'%time.strftime('%Y_%m_%d'))         self.logger = logging.getLogger()         self.logger.setLevel(logging.DEBUG)         # 日志输出格式         self.formatter = logging.Formatter('[%(asctime)s] - %(filename)s] - %(levelname)s: %(message)s')     def __console(self, level, message):         # 创建一个FileHandler,用于写到本地         #fh = logging.FileHandler(self.logname, 'a')  # 追加模式  这个是python2的         fh = logging.FileHandler(self.logname, 'a', encoding='utf-8')  # 这个是python3的         fh.setLevel(logging.DEBUG)         fh.setFormatter(self.formatter)         self.logger.addHandler(fh)         # 创建一个StreamHandler,用于输出到控制台         ch = logging.StreamHandler()         ch.setLevel(logging.DEBUG)         ch.setFormatter(self.formatter)         self.logger.addHandler(ch)         if level == 'info':             self.logger.info(message)         elif level == 'debug':             self.logger.debug(message)         elif level == 'warning':             self.logger.warning(message)         elif level == 'error':             self.logger.error(message)         # 这两行代码是为了避免日志输出重复问题         self.logger.removeHandler(ch)         self.logger.removeHandler(fh)         # 关闭打开的文件         fh.close()     def debug(self, message):         self.__console('debug', message)     def info(self, message):         self.__console('info', message)     def warning(self, message):         self.__console('warning', message)     def error(self, message):         self.__console('error', message) if __name__ == "__main__":   log = Log()   log.info("---测试开始----")   log.info("操作步骤1,2,3")   log.warning("----测试结束----")

执行脚本之后消失

图片发自App

接着在测试模块中就可以直接调用次模块,进行日志的打印与存储,为后续脚本在执行过程中的问题,可以快速定位。

你可能感兴趣的:(接口测试框架(-)—日志模块封装)