测试框架-自定义日志系统

2612 篇文章 2 订阅
2449 篇文章 14 订阅

为更好地将所学融入实践系统,我决定在已有框架基础上自主搭建测试框架。此举非只为重复开发,更主要目的在于深化学习成果。翻阅诸多测试框架,发现它们均具备独特的日志系统。因此,我便选择从日志入手,预计该部分内容较为容易掌握。在软件测试领域,日志记录至关重要,能协助我们追踪测试过程中的细节,以便迅速找到问题所在。本篇文章将展示如何创建自定义日志类,并将其融入测试框架之中。

日志记录的重要性

日志记录在测试中扮演着以下角色:

  • 问题诊断 :记录详细的测试执行信息,便于事后分析和问题诊断。

  • 测试监控 :实时监控测试进度和状态,确保测试按计划进行。

  • 回归测试 :在回归测试中,日志帮助我们理解代码变更对测试结果的影响。

封装日志类

首先我们选择使用loguru库来封装自定义的日志系统。

安装loguru

这一步很简单,执行如下命令即可:

pip install loguru 

定义日志类

我创建了一个名为PytestXLogger的类,封装日志配置和初始化逻辑:

class PytestXLogger:
    logger = loguru_logger
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(PytestXLogger, cls).__new__(cls, *args, **kwargs)
            cls._instance._initialize(*args, **kwargs)
        return cls._instance

__new__ 方法: 这是用于创建对象实例的方法。它检查 _instance 是否为 None,如果是,创建一个新实例并初始化它。 确保单例: 通过 new 方法确保 PytestXLogger 只有一个实例。 哈哈,可以看出来我们使用的单例模式。

初始化日志配置

_initialize方法中,定义控制台和文件日志的格式,并设置日志级别和日志文件路径:

def _initialize(self, level: str = Log.DEFAULT_LOG_LEVEL, log_path: str = LOG_PATH):
    self._console_format = ("...")  # 控制台日志格式
    self._file_format = ("...")  # 文件日志格式
    self.configure_logger(level.upper(), log_path)

配置日志器

configure_logger方法用于配置日志器,添加控制台和文件处理器:

def configure_logger(self, level: str, log_file_path: str):
    self.logger.remove()  # 移除现有处理器
    self.logger.add(sys.stdout, level=level, format=self._console_format)  # 添加控制台处理器
    self.logger.add(log_file_path, level=level, format=self._file_format, encoding="utf-8")  # 添加文件处理器

创建日志实例

创建PytestXLogger的实例,并将其日志器logger暴露给外部使用:

pytestx_logger = PytestXLogger()
logger = pytestx_logger.logger

集成到测试框架

将自定义的日志类集成到测试框架中,应该比较简单了,直接导入使用即可。

在测试用例中使用

在编写测试用例时,直接使用logger记录日志:

def test_example():
    logger.info("测试开始")
    # 测试逻辑...
    logger.info("测试结束")

配置日志级别

根据测试需求,可以在运行测试之前设置不同的日志级别,如DEBUG、 INFO、 WARNING、 ERROR等。

最后

通过封装自定义的日志类,测试框架将拥有更高效、一致且繁多功能的日志系统,从而提升了测试过程中的可追溯性与可维护性。

下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

 ​​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值