Python接口自动化之logging日志

VOL 122

11

2020-05

今天距2021年234天

这是ITester软件测试小栈第122次推文

点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。

微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“21天打卡”一起学习成长,打怪升级。

本文4091字,阅读约需11分钟

在上一篇Python接口自动化测试系列文章:Python接口自动化之pymysql数据库操作

主要介绍pymysql安装、操作流程、语法基础及封装操作数据库类。

以下主要介绍日志相关概念及logging日志模块的操作流程。

日志介绍

01 为什么需要日志?

代码需要经历开发调试审查测试或者上线等不同阶段,在开发时想要打印的信息类型可能和上线后想看到的信息类型完全不同。也就是说,在“测试”时,可能只想看警告和错误信息,然而在“调试”时,可能还想看到跟调试相关的信息。


如果你想打印出使用的模块以及代码运行的时间,那么代码很容易变得混乱。使用logging日志模块,这些问题就能很容易地解决。

02 什么是日志?

日志就是用于记录系统运行时的信息,对一个事件的记录,也称为Log。

03 日志的用途是什么?

日志的基本用途如下:

  • 记录程序运行过程中的错误,方便跟踪定位问题,减少调试和维护成本;

  • 通过日志能还原整个程序的执行过程,能了解程序的整体状态;

  • 对用户行为分析和数据统计,知晓信息来自于哪个模块;

  • 在设计测试框架的时候,也可以通过设计日志来记录框架的整个测试流程;

04 日志的级别分为哪些?

常见日志等级,如下:

  • DEBUG:调试级别(Value=10),打印非常详细的日志信息,通常仅在Debug时使用,如算法中每个循环的中间状态;

  • INFO:信息级别(Value=20),打印一般的日志信息,突出强调程序的运行过程 ,主要用于处理请求或者状态变化等日常事务;

  • WARNING:警告级别(Value=30),打印警告日志信息,表明会出现潜在错误的情形,如某些预期之外的情况发生或者在将来可能发生什么,此情况一般不会影响软件的正常实用,如用户登录密码错误;

  •  ERROR:错误级别(Value=40),打印错误异常信息,该级别的错误可能会导致系统的一些功能无法正常使用,如IO操作失败或者连接问题;

  • CRITICAL:严重错误(Value=50),一个严重的错误,导致系统可能无法继续运行,如内存耗尽、磁盘空间为空,一般很少使用;

05 日志功能的实现

几乎所有开发语言都会内置日志相关功能,或者会有比较优秀的第三方库来提供日志操作功能,比如:log4jlog4php等。它们功能强大、使用简单。Python自身也提供了一个用于记录日志的标准库模块——logging


Logging模块

01 logging模块介绍

logging模块是Python内置的标准模块,主要用于

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
loggingPython内置的模块,它提供了一个灵活的日志记录系统。在接口自动化测试,我们可以使用logging模块来输出测试日志,以便于调试和分析测试结果。下面是一个简单的logging封装调用示例: ```python import logging class Logger(object): def __init__(self, logger_name): self.logger = logging.getLogger(logger_name) self.logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) console_handler.setFormatter(formatter) file_handler = logging.FileHandler(filename='test.log') file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) self.logger.addHandler(console_handler) self.logger.addHandler(file_handler) def get_logger(self): return self.logger ``` 在上面的代码,我们定义了一个Logger类,它接受一个logger_name参数,并初始化一个logger对象。我们可以通过调用get_logger()方法来获取这个logger对象。 在初始化logger对象时,我们设置了logger的日志级别为DEBUG,这意味着logger会记录所有级别为DEBUG及以上的日志。我们还定义了两个handler,一个是console_handler,它将日志输出到控制台;另一个是file_handler,它将日志输出到文件。我们设置了两个handler的日志级别都为DEBUG,并且使用了同一个formatter来格式化日志输出。 在接口自动化测试,我们可以使用Logger类来记录测试日志。例如: ```python logger = Logger('test').get_logger() logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 上面的代码会输出不同级别的日志信息,并分别输出到控制台和文件。我们可以通过分析这些日志信息来诊断和调试测试问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值