目录
做自动化测试肯定要记录运行日志,做自动化测试时,当程序出错、用例失败等情形需要通过输出的信息去定位问题,print输出到屏幕刷得很快,并且无法搜索,而且无法准确定位时哪个文件哪行出问题,所以我们要通过特定的日志来定位。
1、日志的要求
- 代码中根据不同的情形可以按照级别记录日志
- 根据配置记录不同级别的日志
- 根据配置可以将日志记录到文件或在屏幕显示
- 日志中显示运行的时间、代码所在文件、代码行、日志级别、日志信息
满足如上要求,就可以满足我们的日志要求了,python自带的标准库loggin就可以满足我们这些要求了。
2、logging模块简介
需要弄清楚logging 中的以下几个概念,就知道怎么用它了
- Logger:日志记录器,是应用程序中可以直接使用的接口。
- Handler:日志处理器,用以表明将日志保存到什么地方以及保存多久。
- Formatter:格式化,用以配置日志的输出格式
2.1 Logger:日志记录器
这个使用简单,如下两行代码后就可以使用了
import logging
Logger = logging.logger("name")
Logger.info("这是Info信息")
最后面的Logger.info就是写日志了,当然直接这样的代码运行是看不到运行结果的,日志能正常记录和现实出来,还需要设置日志处理器和格式
2.2Handler:日志处理器
所谓的日志处理器,就是控制日志输出到哪里,可以输出到日志文件,也可以输出到控制台,文章描述比较繁琐,在代码实例中直接用代码和注释说明,这样看起来更加清晰。
为避免文件日志过大,我们可以采用循环的模式,设置文件最大大小,和备份文件数量,当炒锅最大大小时就自动备份,备份的数量超过限制数量时,将最早备份的文件删除。
# 日志文件编码格式为utf-8
handler = RotatingFileHandler("logging.log", maxBytes=1024 * 1, backupCount=3, encoding='utf-8')
handler.setFormatter(formatter)
2.3Formatter:格式化
我们在输出的日志中以什么格式显示日志,就是通过Formatter来实现的,需要说明的是格式要通过日志处理器分别设置,然后对应的输出方式就按设定的格式输出日志。
用logging.Formatter(fmt)作为设置参数。其中fmt的参数说明如下:
属性名称 | 格式 | 说明 |
name |