欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 测试框架 —— 自定义日志系统!

测试框架 —— 自定义日志系统!

2024/10/24 22:11:11 来源:https://blog.csdn.net/m0_58026506/article/details/143187692  浏览:    关键词:测试框架 —— 自定义日志系统!

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

前言

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

日志记录的重要性

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

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

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

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

封装日志类

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

安装loguru

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

pip install loguru

定义日志类

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

class PytestXLogger:logger = loguru_logger_instance = Nonedef __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

集成到测试框架

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

1. 在测试用例中使用

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

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

2. 配置日志级别

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

最后

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

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com