首页 > 其他分享 >如何在 Pytest 中添加日志记录

如何在 Pytest 中添加日志记录

时间:2024-04-11 17:55:38浏览次数:25  
标签:... 测试用例 log pytest Pytest test 日志 添加

前言

在编写和运行测试时,对于调试和排查问题,添加日志记录是一种非常有用的技术。Pytest 是一个流行的 Python 测试框架,开发者通过pytest可以轻松地编写和运行各种测试。本文将介绍如何在 Pytest 中添加日志记录,以便更好地理解测试执行过程中的细节和问题。

pytest.ini

我们之前有介绍过pytest.ini文件的使用,可以帮助我们更加方便的执行测试用例,pytest.ini中有单独为log日志增加的一些信息,如下图:

我们可以对pytest.ini文件做出如下配置:

[pytest]
log_cli = True      
log_cli_level = INFO   
log_cli_format = %(asctime)s [%(levelname)s] | %(filename)s:%(lineno)s | %(message)s       
log_cli_date_format = %Y-%m-%d %H:%M:%S

含义如下:

  • log_cli = True :表示是否实时打开log监测,默认为False

  • log_cli_level : 表示监测log日志等级显示

  • log_cli_format: 表示输出log日志显示格式

  • log_cli_date_format: 表示显示log时间

运行用例

在我们创建了pytest.ini文件之后,在测试用例编写时,我们需要导入logging库,我们的测试用例文件内容如下:

import logging


def test_demo():
    logging.info('这是测试用例01的info...')
    logging.warning('这是测试用例01的warning...')
    logging.error('这是测试用例01的error...')
    assert 1 == 1

运行用例后,控制台输出如下:

============================= test session starts =============================
collecting ... collected 1 item

test_demo.py::test_demo 
-------------------------------- live log call --------------------------------
2024-04-09 17:15:21 [INFO] | test_demo.py:5 | 这是测试用例01的info...
2024-04-09 17:15:21 [WARNING] | test_demo.py:6 | 这是测试用例01的warning...
2024-04-09 17:15:21 [ERROR] | test_demo.py:7 | 这是测试用例01的error...
PASSED                                                                   [100%]

============== 1 passed in 0.01s ================

如果我们不满足于日志只输出在控制台,想要输出成日志文件,我们可以修改pytest.ini文件,我们可以做出如下修改:

[pytest]
log_file =pytest_log.txt
log_file_level = INFO
log_file_date_format = %Y-%m-%d %H:%M:%S
log_file_format = %(asctime)s [ %(levelname)s ] %(filename)s:%(lineno)s | %(message)s

运行测试之后,我们可以看到项目中新生成了一个日志文件,内容如下:

2024-04-09 17:18:39 [ INFO ] test_demo.py:5 | 这是测试用例01的info...
2024-04-09 17:18:39 [ WARNING ] test_demo.py:6 | 这是测试用例01的warning...
2024-04-09 17:18:39 [ ERROR ] test_demo.py:7 | 这是测试用例01的error...

总结

本文主要介绍了如何在 Pytest 中添加日志记录,以便更好地理解和调试测试代码。可以根据自己的需求进一步配置和扩展日志记录功能,从而更加有效地编写和运行测试用例。

标签:...,测试用例,log,pytest,Pytest,test,日志,添加
From: https://www.cnblogs.com/hogwarts/p/18129778

相关文章

  • CH592 CH582 CH573从机例子添加RSSI信息获取
    以CH582HID_Mouse为例,新增RSSI获取和打印步骤如下 LIB库已经提供了回调接口,只需要在程序中定义函数体实现   连接成功后启动任务   代码编译 烧录到CH582种运行代码 连接成功后打印RSSI和handle值 ......
  • [Android Studio] 如何添加依赖 (转)
    原文:https://blog.csdn.net/zhou_ge1/article/details/127130430 1.左上角菜单栏:File->ProjectStructure...2.Dependencies->app->点击+号->1LibraryDependency 3.输入想要添加的依赖名称->点击Search->点击ok 4.回到ProjectStructure界面,点击Apply,最后点击ok,即可......
  • 添加告警动作
    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}问题详情:{ITEM.NAME}:{ITEM.VALUE}事件ID:{EVENT.ID}恢复主机:{HOST.NAME}主机地址:{HOS......
  • 资源池化基于DORADO双集群搭建指南(非日志合一)
    资源池化基于DORADO双集群搭建指南----非日志合一10.10.10前置条件工程已完成代码编译,或者。主备存储已经挂载磁阵LUN设备,并且已经安装ultrapath多路径软件,磁阵设备可用。限制条件两套正常的dorado存储,需要搭建两套资源池化集群。基于资源池化本地日志和同步复制共享xlog两......
  • openGauss1.1.0主备集群节点的添加和删除
    openGauss1.1.0主备集群节点的添加和删除在上一篇文章《openGauss1.1.0主备部署(1主+2备+1级联备)》中,我们已经搭建了常见于生产环境的数据库架构(1主2备1级联备),如下图所示:本文将基于已搭建的主备环境进行集群节点的删除和添加操作,希望相关操作内容对大家有所帮助。......
  • 在Linux中,如何管理和优化日志文件?
    在Linux中,管理和优化日志文件是系统维护的重要组成部分。日志文件记录了系统和应用程序的活动,对于故障排查、安全审计和性能分析至关重要。以下是一些管理和优化日志文件的方法:1.配置日志级别许多应用程序和系统服务允许你设置不同的日志级别,如DEBUG、INFO、WARNING、ERROR和CR......
  • ELK收集主流应用日志
    1.收集nginx日志学习背景:access.log,error.log目前日志混杂在一个es索引下。 改进filebeat配置https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html加上日志输入文件的判断,采用不同的索引 1filebeat.inputs:2-type:log3......
  • EBLK日志收集方案
    ELK是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash和Kibana。该组合版本会统一发布。 ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文......
  • Log4J日志配置详解
    一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件......
  • 日志收集系统PLG(Promtail+Loki+Grafana)部署
    一、简介Loki是受Prometheus启发由GrafanaLabs团队开源的水平可扩展,高度可用的多租户日志聚合系统。开发语言:GoogleGo。它的设计具有很高的成本效益,并且易于操作。使用标签来作为索引,而不是对全文进行检索,也就是说,你通过这些标签既可以查询日志的内容也可以查询到监控的数......