📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
在接口自动化测试中,日志记录是一个重要的环节,它能帮助我们追踪接口的执行情况、调试问题、分析测试结果等。通过规范的日志记录,我们可以更好地管理和维护接口自动化测试代码。本文将详细介绍如何在 Pytest 框架中封装日志记录,包括按日期分割日志文件、为不同等级的日志设置颜色等。
一、日志记录封装的目标
按日期分割日志文件:每天生成一个日志文件,便于管理和查找。
为不同等级的日志设置颜色:便于在控制台中快速识别日志等级。
灵活配置日志等级和输出格式:根据需要调整日志的详细程度和显示格式。
二、日志记录封装的实现
(一)导入日志库
首先,需要导入日志库。常用的有 logging 库和 colorlog 库。colorlog 库可以为日志添加颜色,使得在控制台中更易于阅读。
import logging
import colorlog
from datetime import datetime
import os
(二)定义日志记录器
在接口框架的入口文件中,定义一个日志记录器,用来记录整个接口测试过程中的日志信息。
logger = logging.getLogger(__name__)
(三)配置日志记录器
在接口框架的配置文件中,配置日志记录器的文件输出路径、日志级别、日志格式等。
# 日志颜色配置
log_colors_config = {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'bold_red',
}
# 创建日志目录
log_path = os.path.join(os.path.dirname(__file__), 'logs')
if not os.path.exists(log_path):
os.mkdir(log_path)
# 获取当前日期作为日志文件名
log_file_name = datetime.now().strftime("%Y-%m-%d") + '.log'
log_file_path = os.path.join(log_path, log_file_name)
# 配置日志输出到文件
file_handler = logging.FileHandler(log_file_path, mode='a', encoding='utf-8')
file_formatter = logging.Formatter(
fmt='[%(asctime)s] %(filename)s -> %(funcName)s line:%(lineno)d [%(levelname)s] : %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
file_handler.setFormatter(file_formatter)
# 配置日志输出到控制台
console_handler = logging.StreamHandler()
console_formatter = colorlog.ColoredFormatter(
fmt='%(log_color)s[%(asctime)s] %(filename)s -> %(funcName)s line:%(lineno)d [%(levelname)s] : %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
log_colors=log_colors_config
)
console_handler.setFormatter(console_formatter)
# 设置日志级别
logger.setLevel(logging.DEBUG)
console_handler.setLevel(logging.DEBUG)
file_handler.setLevel(logging.INFO)
# 添加日志处理器
logger.addHandler(console_handler)
logger.addHandler(file_handler)
(四)封装日志记录函数
为了方便在测试用例中使用日志记录,可以封装一些日志记录函数。
class ApiLog:
@staticmethod
def debug(message):
logger.debug(message)
@staticmethod
def info(message):
logger.info(message)
@staticmethod
def warning(message):
logger.warning(message)
@staticmethod
def error(message):
logger.error(message)
@staticmethod
def critical(message):
logger.critical(message)
(五)在测试用例中使用日志记录
在测试用例中,可以通过封装的日志记录函数记录日志。
def test_example():
ApiLog.info("测试开始")
ApiLog.debug("执行测试步骤")
ApiLog.warning("这是一个警告")
ApiLog.error("这是一个错误")
ApiLog.critical("这是一个严重错误")
三、总结
通过上述步骤,我们可以在 Pytest 框架中实现日志记录的封装,包括按日期分割日志文件和为不同等级的日志设置颜色。这不仅可以提高开发效率,还能使日志记录更加清晰和易于管理。希望本文能够对读者在接口自动化框架中实现日志记录封装提供帮助。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】