【Python+selenium】自动化测试框架搭建之日志输出类的封装及调用(笔记)

本文介绍了如何在Python自动化测试框架中封装日志输出类,利用logging模块进行日志管理。日志对于调试、系统状态监控和故障分析至关重要。文章详细阐述了日志的等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)及其作用,并展示了如何通过类实现日志文件的创建、设置日志路径和等级,以及日志格式的定制。最后,给出了日志输出类的调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Python+selenium】自动化测试框架搭建之日志输出类的封装及调用(笔记)

在自动化测试中我们可能会需要将日志进行输出打印,这就需要我们对日志输出类进行封装,形成公用方法,方便后续调用,Python中提供了logging这一内置模块,用以实现日志的生成。
一、日志的作用:
1.工作日志的作用:
第一、工作日志有利于自我保护,降低责任追究风险。
第二、工作日志有利于科学管理,强化统筹兼顾能力。
第三、工作日志有利于总结提高,形成良好的职业习惯。(转载地址:https://www.jianshu.com/p/7cb7a75b96cc)
2.自动化测试日志的作用:
一:调试程序,日志能跟踪运行代码所发生事件的方法,方便调试;
二:了解系统程序运行的情况,是否正常;
三、系统程序运行故障分析与问题定位;
四、信息查询、服务诊断、数据分析。
二、日志等级:
优先级从小到大五个等级:
debug 调试信息
info 描述重要事件
warning 警告信息
error 错误异常信息
critical 严重错误

三、logging模块为Python内置模块,可以生成日志,包括设置日志等级,日志路径,日志文件回滚等。
logging包括四个组件:
logger 日志器 提供了应用程序的接口
Handler 处理器 通过logger在不同位置输出日志
Formatter 格式器 决定日志以什么样式显示
Filter 过滤器 过滤哪些需要记录输出,哪些需要丢弃

四、输出日志类的封装:


```python
import logging
import os
from time import strftime,localtime
# 使用类的方式实现日志的输出和调用
class LogFileOperation():
    def __init__(self,logger=None):
        self.logger = logging.getLogger("logger")
        self.logger.setLevel(logging.DEBUG)#全局日志等级
        #避免日志重复输出
        if not self.logger.handlers:
            self.dirPath = os.path.dirname(__file__)#获取文件绝对路径
            self.alllogPath = os.path.join(self.dirPath, '..', '..', "logfile", "AllLogs","")#打开全部日志存放路径
            self.errorlogpath = os.path.join(self.dirPath, '..', '..', "logfile", "ErrorLogs","")#打开错误日志存放路径
            self.sysTime = strftime('%Y%m%d%H%M%S', localtime())#获取当前系统时间
            self.alllog_name = self.alllogPath + self.sysTime + "allLog.log"  #定义全部日志文件名
            self.errorlog_name = self.errorlogpath +self.sysTime +"errorLog.log"  #定义错误日志文件名
            print("所有日志路径:"+self.alllog_name,"\n错误日志路径:"+self.errorlog_name)
            # 创建一个handler,参数为打开的文件的路径、名字等信息,以及打开的方式
            allfh = logging.FileHandler(self.alllog_name,'a', encoding="utf-8")
            allfh.setLevel(logging.DEBUG)#定义全部日志等级
            errorfh = logging.FileHandler(self.errorlog_name,'a', encoding="utf-8")
            errorfh.setLevel(logging.ERROR)#定义错误日志等级
            # 定义输出的格式,formatter 此处定义输出日志生成时间、当前执行文件名、日志等级、输出信息
            formatter = logging.Formatter(fmt='%(asctime)s - %(filename)s - %(levelname)s - %(message)s'
                                          )
            allfh.setFormatter(formatter)#给全部日志传入输出格式
            errorfh.setFormatter(formatter)#给错误日志传入输出格式
            self.logger.addHandler(allfh)
            self.logger.addHandler(errorfh)
            allfh.close()
            errorfh.close()
    def get_log(self):
        return self.logger


五、日志输出类的调用:日志输出类的调用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值