Python自动化测试通过日志3分钟定位bug
一、简单使用
入门小案例
| 1 2 3 4 5 6 7 8 |
|
日志级别
根据不同情况设置了五种日志等级,不同情况输出不同等级的日志。

日志器设置的级别会过滤掉低于这个级别的日志
| 1 2 3 4 5 6 7 8 |
|
2020-09-11 17:39:26,667-WARNING-This is a warning log
2020-09-11 17:39:26,669-ERROR-This is a error log
2020-09-11 17:39:26,669-CRITICAL-This is a critical log
配置
basicConfig 方法支持一下关键字参数进行配置。

格式化规则
日志的输出格式可以通过下面格式自由组合输出

常用格式:%(asctime)s-[%(filename)s–>line:%(lineno)d]-%(levelname)s:% (message)s
| 1 2 3 4 |
|
[DEBUG]-2020-09-11 17:36:50,125–4:This is a debug log
日志写到文件
只需要配置 filename 参数即可
| 1 2 3 4 5 6 7 8 9 10 |
|
注意,配置了 fielname 后,日志将不会输出在控制台。
二、高级用法
简单的代码通过 logging 直接使用即可,如果要深入使用需要按照面向对象的方式使用 logging。
日志组件
logging 模块包含一下几个组件。

步骤
1 创建日志记录器
| 1 2 3 4 |
|
通过 getLogger 这个方法可以创建一个日志记录器,注意要给名字否则返回根日志记录器。
通过 setLevel 设置日志记录器的等级。
2 创建日志处理器
| 1 2 |
|
| 1 |
|
| 1 2 3 |
|
日志处理器就是将日志发送到指定的位置
FileHandler 将日志发送到文件
StreaHandler 将它可将日志记录输出发送到数据流例如 sys.stdout, sys.stderr 或任何文件类对象默认sys.stdout 即控制台。
RotatingFileHandler 支持根据日志文件大小进行轮转
TimedRotatingFileHandler 支持根据时间进行轮转日志文件
更多详情见官方文档
(logging.handlers --- 日志处理程序 — Python 3.12.0 文档)
3 创建格式化器
| 1 |
|
格式化器需要设置到处理器上
| 1 2 |
|
4 创建过滤器
过滤器用来过滤指定日志。具体使用略,一般用不到。
详情见官方文档
5 将处理器添加到记录器上
| 1 2 |
|
6 记录日志
| 1 |
|
2020-09-11 22:22:44,095-[–>line:1]-INFO:This is a info
| 1 |
|
2020-09-11 22:23:20,337-[–>line:1]-WARNING:This is a warning
三、日志模块封装
功能分析
- 能够自定义日志器名
- 能够自定义日志文件名和路径
- 能够自定义日志文件编码方式
- 能够自定义日志格式
- 使用时间轮转处理器,并能够配置
封装成函数
在 common 目录下创建模块 log_handler.py 在其中创建如下函数。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
四、应用到项目中
导入
日志器生成函数的导入不能像 Excel 数据读取函数一样,每个用例模块里都导入一遍。因为它返回一个日志器对象,当多次调用日志器生成函数,且日志器名称相同时,会给同一个日志器添加多个日志处理器,从而出现重复记录日志器的问题。
为了解决上面的问题,在 common 文件夹下创建一个名为 init.py 的文件,在 common 模块被导入时会自动执行这个文件里的代码,且只会执行一次。
在 init.py 文件编写如下代码:
| 1 2 |
|
那么在项目中的其他模块中就可以通过如下代码导入
| 1 |
|
从而可以保证在项目执行过程中,get_logger 方法只会执行一遍。
记录日志
日志的作用是记录程序的运行状态和当程序出现问题时能提供定位分析错误的依据。
什么时候需要记录日志,记录什么日志,根据每个人对程序的理解,以及经验。
我们的项目中,在用例执行的过程是核心,所以我们的日志也是围绕着用例的执行。
使用日志记录每个用例的测试数据,和测试结果,代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】


更多推荐
所有评论(0)