新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python接口自动化浅析logging日志原理及模块操作流程

发布时间:2026/9/28 4:57:19来源:尧图网络
Python接口自动化浅析logging日志原理及模块操作流程
关于接口自动化中日志的基本原理, 以及各个模块的具体是怎么进行操作的, 这里做一个简要的探讨与说明。更新时间为二〇二一年八月二十五日具体时刻是上午十点三十四分五十三秒, 文章的作者身份是软件测试以及自动化测试领域的专业人员。这篇文章主要是向大家介绍了关于接口自动化系列文章里对日志原理和模块操作流程的浅析, 文章中非常详细地说明了为什么需要日志, 以及日志到底是什么, 还有像日志用途这些基本的工作原理。在前一篇关于接口自动化测试的系列文章里, 也就是那篇名为“接口自动化浅析数据库操作流程”的文章当中, 其内容主要涵盖了安装这一环节、具体的操作流程、相关的语法基础部分, 以及对能够操作数据类的封装方法进行了介绍。以下的内容主要是为了向大家详细说明关于日志方面的一些基本概念, 并且也会去讲解在操作日志模块的具体流程是怎么样的。一、日志介绍01 为什么需要日志代码要经历开发, 调试, 审查, 测试, 或者上线等不同阶段, 在开发时想要打印的信息类型, 可能和上线后想看到的信息类型完全不同, 也就是说, 在“测试”的时候, 可能只想看警告和错误信息, 然而在“调试”的时候, 可能还想看到跟调试相关的信息, 如果你想打印出使用的模块, 以及代码运行的时间, 那么代码很容易变得混乱。通过使用日志模块, 这些问题的解决工作就会变得相当容易起来。02什么是日志?所谓的日志, 其实就是用来记录系统在运行的过程中所产生的各种信息的, 对于某一个具体事件所进行的记录操作, 通常也被称作是Log。那么, 日志到底有着什么样的用途呢?关于日志的基本用途, 具体表现如下:04 日志的级别分为哪些常见的日志等级的分类情况, 在下面这些内容里可以看到:DEBUG: 调试级别Value10, 打印非常详细的日志信息, 通常仅在Debug时使用, 在算法中每个循环的中间状态这样的环节。INFO: 信息级别Value20, 打印一般的日志信息, 突出强调程序的运行过程 , 主要用于处理请求或者状态变化等日常事务。ERROR: 错误级别Value40, 会打印出错误的异常信息, 属于这一级别的错误可能会对系统造成负面影响, 导致有些功能无法正常起作用, 比如可能会导致输入输出操作失败, 或者是出现连接方面的问题。这是一个严重错误, 它的具体数值是50, 意味着这是一个极其糟糕的问题, 会让系统大概率没法接着正常干活下去, 比如电脑的内存彻底不够用了, 或者硬盘里的剩余空间变成空的了, 这种极端情况在平常日子里一般很少碰得到。05 日志功能的实现现在, 几乎每一个开发语言里面都会自己带着关于记录的这样一个能力。如果没有的话, 大家也都可以去用那些做得比较出色的第三方工具库, 以此来获得处理记录方面的功能支持。像咱们常说的log4j, 它就是一个这样的例子。这些东西整体来说, 实力是很强的。而且用起来的时候也不会感觉到复杂难懂。自身也提供了一个供用户用来进行日志记录操作的标准化库模块, 这个模块的名称就叫做——。二、模块01 模块介绍这个模块是内置的标准模块, 它主要用来完成运行日志的输出工作, 使用者可以设置输出日志的等级, 也可以指定日志保存的路径, 还能配置日志文件要不要进行回滚操作。这是第二个模块, 它所具备的一些有利条件。与print相比而言, 它拥有下面这些方面的长处:03 日志框架的组成日志会暴露函数给那个应用程序, 这个逻辑会基于日志记录器和过滤器的那个级别去决定哪个日志是有效的。日志记录器的工作, 是向相应的处理器传达日志信息, 以便进行具体的处理操作。处理器, 它把由那个日志记录器所搞出来的那些个日志记录信息, 给发送到了那个恰当的存放目的地。过滤器能够提供一种更细致的控制方式, 它可以来决定究竟输出哪些日志记录。在最终的输出结果里面, 格式化器这个功能是用来明确规定日志记录部分应该采用怎样的一种排版布局的。04 具体来讲, 函数里面那些详细的参数到底是什么。就是去创建一个你指的那个名字的文件, 这样子的话, 日志就会被放到那个已经建好的文件里面去。关于文件打开方式这个概念, 如果用户明确指定了某个值的话, 那么系统就会使用该指定的参数, 如果没有特别指定的话, 其默认值是字母“w”, 此外, 这里还可以额外指定为字母“a”。对应当被采用的日志展现样式进行明确的设定与选择。指定日期时间格式level: 表示的是日志级别, 这个级别是进行设置的。使用指定来进行创建。这是一个非常简易的, 有关日志功能的, 小型示例程序。咱们来试试看, 各自输出一条日志级别的日志记录。import logginglogging.debug(This is a debug log.)logging.info(This is a info log.)logging.warning(This is a warning log.)logging.error(This is a error log.)logging.critical(This is a critical log.)输出结果为:root:这是一条记录, 也就是一个日志。ERROR:root:This is a error log.:root:This is a log.为什么debug、info级别日志没输出呢模块提供的默认的日志级别是所以只输出了及以上的日志级别。日志的级别与日志器的名称以及具体的日志内容是通过冒号来进行分隔的。如果用户没有自定义日志器的名称的话, 那么系统会默认使用名为root的名称作为日志器的标识。以下是那段源代码。def getLogger(nameNone):Return a logger with the specified name, creating it if necessary.If no name is specified, return the root logger.if name:return Logger.manager.getLogger(name)else:return root06, 关于自定义日志的部分内容。我们来设置一下日志收集器以及它的级别。# 定义一个日志收集器logger logging.getLogger(ITester)# 设置收集器的级别不设定的话默认收集warning及以上级别的日志logger.setLevel(DEBUG)把日志的格式给设成咱们想要的那样。fmt logging.Formatter(%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s)在通常的情况下, 大家所使用的关于日志进行输出时的具体格式。把日志处理器的配置项进行修改, 让日志的输出目的地设置为具体的文件路径。# 输出到文件file_handler logging.FileHandler(../log/mylog.txt)# 设置日志处理器级别file_handler.setLevel(DEBUG)# 处理器按指定格式输出日志file_handler.setFormatter(fmt)在该项目下面新建一个文件夹, 这个文件夹的名字叫做log, 接着在这个新建好的文件夹下面再新建一个文件, 文件的名称是mylog.txt, 这个文件是用来存放日志数据的。你需要去做的事情, 就是把日志处理器进行设置, 这样它就会把结果输出到控制台上面去。# 输出到控制台ch logging.StreamHandler()# 设置日志处理器级别ch.setLevel(DEBUG)# 处理器按指定格式输出日志ch.setFormatter(fmt)收集器和处理器进行对接, 并且指定具体的输出渠道。# 日志输出到文件logger.addHandler(file_handler)# 日志输出到控制台logger.addHandler(ch)关于这个大致流程图的说明, 具体情况如下。我们会把上面那些各自独立的内容给揉合到一起, 然后去测试一下功能是否属于正常的状况。接着呢, 会在指定的那个目录下面, 创建一个新的名为.py的文件出来。import logging# 定义一个日志收集器logger logging.getLogger(ITester)# 设置收集器的级别不设定的话默认收集warning及以上级别的日志logger.setLevel(DEBUG)# 设置日志格式fmt logging.Formatter(%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s)# 设置日志处理器-输出到文件file_handler logging.FileHandler(../log/mylog.txt)# 设置日志处理器级别file_handler.setLevel(DEBUG)# 处理器按指定格式输出日志file_handler.setFormatter(fmt)# 输出到控制台ch logging.StreamHandler()# 设置日志处理器级别ch.setLevel(DEBUG)# 处理器按指定格式输出日志ch.setFormatter(fmt)# 收集器和处理器对接指定输出渠道# 日志输出到文件logger.addHandler(file_handler)# 日志输出到控制台logger.addHandler(ch)if __name__ __main__:logger.debug(自定义的debug日志)logger.info(自定义的info日志)logger.warning(自定义的warning日志)logger.error(自定义的error日志)logger.critical(自定义的critical日志)控制台输出效果文件输出效果以上就是关于接口自动化浅析日志原理以及模块操作流程的那些详细内容, 假如你想去关注更多关于接口自动化日志方面的资料的话, 那就请你去关注脚本之家其它的那些相关文章
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Spring AI 多轮对话实战:用 ChatMemory 实现记忆持久化 2026/9/28 6:01:12

Spring AI 多轮对话实战:用 ChatMemory 实现记忆持久化

接入大模型之后,我做的第一件正事,就是把多轮对话跑通。你打开任意一家大模型厂商的接口文档就会发现,模型本身不记事。你问一句“帮我安排一下杭州出差两天的行程”,它回一段看似靠谱的计划;你再追问“第二天下午的会…

阅读更多 →
C++ RPG小游戏源码实战:可编译、可调试、可扩展的OOP项目 2026/9/28 6:01:12

C++ RPG小游戏源码实战:可编译、可调试、可扩展的OOP项目

简介:本资源是一份面向C初学者与游戏开发入门者的RPG小游戏实战源码,聚焦角色建模、战斗逻辑与任务系统等核心机制实现。代码采用标准C编写,完整呈现Character、Battle、Skill、Quest、LevelUp等关键类的设计与交互,涵盖打怪、技能…

阅读更多 →
Flutter×OpenHarmony文件管理器:数据结构设计实战与踩坑总结 2026/9/28 6:01:12

Flutter×OpenHarmony文件管理器:数据结构设计实战与踩坑总结

做文件管家类的应用,很多人的第一反应是先把界面画出来:左边文件夹树,右边文件列表,顶部加个搜索栏。放在普通工具型 App 里这个思路没毛病,但当你把目标平台换成 OpenHarmony、UI 层交给 Flutter,还要面对…

阅读更多 →
基于AutoCAD .NET API的V带轮参数化剖视图绘制工具开发详解 2026/9/28 6:01:12

基于AutoCAD .NET API的V带轮参数化剖视图绘制工具开发详解

你做过这样的活儿吗?明天交图,客户临时改了一个轴孔直径,你得把整张V带轮剖视图从头到尾重画一遍:外径改了、宽度改了、一组带槽挨个移位、剖面线重新填充、尺寸标注再刷一遍。粗活不累,但改错一处就得全图返工&#x…

阅读更多 →
SpringBoot + Vue 在线学习平台毕设全栈实战指南 2026/9/28 6:01:12

SpringBoot + Vue 在线学习平台毕设全栈实战指南

1. 毕设选型:为什么最后锁定了 SpringBoot Vue 组合每年到了毕设季,也就是现在这个时间点,很多同学开始在技术选型上反复横跳。天天刷论坛、看热搜,一会儿觉得 PHP 简单,一会儿觉得 Flask 轻量,结果折腾两…

阅读更多 →
便携储能BMS电流检测:INA199芯片选型、电路设计与校准实战 2026/9/28 6:01:06

便携储能BMS电流检测:INA199芯片选型、电路设计与校准实战

1. 为什么便携储能设备离不开一颗靠谱的电流检测芯片做便携式储能这行的人都有一个共识:电池管理系统(BMS)做得好不好,直接决定了产品能不能在市场上活下来。而BMS里面最基础、也最容易被忽视的一环,就是电流检测。你可…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉