Pytest日志收集器配置
前言
在
pytest框架中,日志记录(logging)是一个强大的功能,它允许我们在测试期间记录信息、警告、错误等,从而帮助调试和监控测试进度。
pytest与Python标准库中的logging模块完美集成,因此你可以很容易地在pytest测试中使用日志记录。
配置日志收集
通过修改
pytest.ini配置文件来配置日志记录。创建一个名为
pytest.ini的文件在项目的根目录,并添加以下内[pytest] ;打印详细日志,相当于命令行加 -vs addopts = --capture=no --tb=long;日志开关 true/false log_cli = true;输出到终端 ;日志级别 log_cli_level = info ;日志格式 log_cli_format = %(asctime)s --> %(filename)-10s [line:%(lineno)-3d] --> %(levelname)-5s --> %(message)s ;日志时间格式 log_cli_date_format = %Y-%m-%d %H:%M:%S; 输出到文件 ;日志文件位置 log_file = logs/test-log.txt ;日志文件等级 log_file_level = info ;日志文件格式 log_file_format = %(asctime)s --> %(filename)-10s [line:%(lineno)-3d] --> %(levelname)-5s --> %(message)s ;日志文件日期格式 log_file_date_format = %Y-%m-%d %H:%M:%S容来配置日志记录:
验证日志收集
代码实例
import logging
import pytestlogger = logging.getLogger(__name__)@pytest.mark.parametrize(argnames=["v1", "v2"], argvalues=[[1, 2], [2, 3], [3, 4]])
def test_case_01(v1, v2):logger.info(f"断言:{v1} < {v2}")assert v1 < v2, "断言失败"
执行结果

测试用例添加日志
测试用例导入loggin模块,即可在想要的地方添加日志。
import logginglogging.info(f"请求方法:{method},请求路径:{url},请求参数:{data}")
logging.info(f"响应结果:{res}")
拓展-收集断言错误信息
利用
钩子函数在测试用例执行结束阶段收集执行信息。在目标目录创建
conftest.py配置文件
import json
import loggingdef pytest_runtest_makereport(item, call):if call.excinfo is not None:msg = {"module": item.location[0],"function": item.name,"line": item.location[1],"message": str(call.excinfo.value).replace("\n", ":")}logging.error(json.dumps(msg, indent=4, ensure_ascii=False))
结果查看:

拓展-动态生成日志文件
在
conftest.py文件添加如下代码
# 动态生成log文件的名称,哪怕配置文件中配置了log_file选项也不会生效
def pytest_configure(config):time_now = datetime.now().strftime('%Y_%m_%d_%H_%M_%S')config.option.log_file = os.path.join(config.rootdir, 'log', f'{time_now}.log')
结果查看:

相关文章:
Pytest日志收集器配置
前言 在pytest框架中,日志记录(logging)是一个强大的功能,它允许我们在测试期间记录信息、警告、错误等,从而帮助调试和监控测试进度。 pytest与Python标准库中的logging模块完美集成,因此你可以很容易地在…...
Morris算法(大数据作业)
我只能说,概率证明真的好难啊!(;′⌒) 这也证明我的概率论真的学的很差劲,有时间一定要补补/(ㄒoㄒ)/~~ 算法不难证明难! 当一个数足够大时,能不能用更少的空间来近似表示这个整数n,于是&…...
TCP/IP协议 【三次握手】过程简要描述
当建立TCP连接时,三次握手的作用简要描述如下: 第一次握手(客户端向服务器发送SYN包):客户端发送SYN包给服务器,确认服务器是否在线并等待响应。 第二次握手(服务器向客户端发送SYNACK包&…...
docker 数据管理,数据持久化详解 二 数据卷容器
数据卷和数据卷容器核心区别 持久性对比 数据卷:当您直接在启动容器时指定了一个数据卷(例如,使用docker run -v /data),这个数据卷会自动创建,并且其内容会在容器停止或删除后继续存在。您可以随时通过Do…...
Logrotate:Linux系统日志轮转和管理的实用指南
Logrotate是Linux系统中用于自动化管理日志文件的强大工具,它能够高效、安全地轮转、压缩和清理日志文件,从而有效控制日志文件大小,节省磁盘空间,并显著提升系统可维护性和安全性。本文档将提供Logrotate的实用指南,涵…...
八股面试3(自用)
基本数据类型和引用数据类型区别 java中数据类型分为基本数据类型和引用数据类型 8大基本数据类型 1.整数:int,long,short,byte 2.浮点类型:float,double 3.字符类型:char 4.布尔类型&…...
【微服务】springboot3 集成 Flink CDC 1.17 实现mysql数据同步
目录 一、前言 二、常用的数据同步解决方案 2.1 为什么需要数据同步 2.2 常用的数据同步方案 2.2.1 Debezium 2.2.2 DataX 2.2.3 Canal 2.2.4 Sqoop 2.2.5 Kettle 2.2.6 Flink CDC 三、Flink CDC介绍 3.1 Flink CDC 概述 3.1.1 Flink CDC 工作原理 3.2 Flink CDC…...
【Android】浅析OkHttp(1)
【Android】浅析OkHttp(1) OkHttp 是一个高效、轻量级的 HTTP 客户端库,主要用于 Android 和 Java 应用开发。它不仅支持同步和异步的 HTTP 请求,还支持许多高级功能,如连接池、透明的 GZIP 压缩、响应缓存、WebSocke…...
Generate-on-Graph
目录 摘要1 引言2 相关工作4 不完整知识图谱问答(IKGQA)4.1 任务介绍4.2 数据集构建 5 Generate-on-Graph (GoG) 摘要 为了解决大型语言模型(LLMs)在知识不足和幻觉问题上的困扰,众多研究探索了将LLMs与知识图谱&…...
学习笔记——交换——STP(生成树)简介
一、技术背景 1、生成树技术背景 交换机单线路组网,存在单点故障(上左图),上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,业务将会中断。 为了使得网络更加健壮、更具有冗余性,将拓扑修改为(上右图)接入…...
【Linux从入门到精通一】操作系统概述与Linux初识
个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] 📱…...
Git 深度解析 —— 从基础到进阶
目录 1. Git 基础概念 1.1 版本控制 (Version Control) 1.2 分布式版本控制 (Distributed Version Control) 1.3 核心概念 1.4 Git 工作流程 2. Git 常用命令 2.1 初始化仓库 2.2 添加文件 2.3 提交修改 2.4 查看状态 2.5 查看历史记录 2.6 切换分支 2.7 创建分支…...
PCIE-变量总结
1.changed_speed_recovery: 表示链路双方已经将链路速率协商为更高的速率。 在configuration.complete状态下此变量会reset成0; 当前状态在recovery.rcvrlock状态: 在经过24ms的timeout之后,任何一个已经configured的lane&…...
【iOS】AFNetworing初步学习
文章目录 前言OC的网络请求步骤单例封装网络请求使用AFNetworking进行网络请求 前言 在暑假,学习了一些简单的网络请求的内容,本周学习了AFNetworking的基本使用,通过本篇博客进行一个简单的介绍。 OC的网络请求步骤 简单的网络请求主要有…...
【数据结构】堆的创建
Heap.h #include<stdio.h> #include<stdlib.h> #include<stdbool.h> #include<assert.h>//创建堆结构体 typedef int HPDateType; typedef struct Heap {HPDateType* a;int size;int capacity; }HP;//堆的初始化 void HPInit(HP* php);//堆的销毁 voi…...
Linux下Git操作
一、基本命令 1、创建 git 目录(工作区) mkdir gitcode 2、创建本地仓库,生成 .git 隐藏目录 git init 3、设置配置项 git config user.name "xxx" git config user.email "....." 4、查看配置项 git config -l …...
缺失d3dx9_42.dll如何修复,d3dx9_42.dll故障的6种修复方法分享
在电脑使用过程中,许多游戏玩家和软件用户可能都遇到过d3dx9_42.dll丢失的问题。这个问题会导致游戏或软件无法正常运行,给用户带来诸多不便。本文将详细解读d3dx9_42.dll丢失的原因、影响及解决方案,帮助大家顺利解决这个问题。 一、d3dx9_4…...
深入理解Android WebView的加载流程与事件回调
文章目录 一、WebView 加载流程时序图二、WebView 加载流程回调函数说明三、AwContents3.1 主要功能和职责3.2 架构和实现3.3 使用场景 四、利用WebView回调函数检测白屏4.1 使用onPageStarted和onPageFinished检测加载时间4.2 利用onReceivedError和onReceivedHttpError检测加…...
机器视觉相机自动对焦算法
第一,Brenner梯度法、 第二,Tenegrad梯度法、 第三,laplace梯度法、 第四,方差法、 第五,能量梯度法。 此实例通过使用Halcon实现5种清晰度算法函数: 1. 方差算法函数; 2. 拉普拉斯能量函数…...
StarTowerChain:开启去中心化创新篇章
官网: www.startower.fr 在当今创新驱动的时代,StarTowerChain 以其独特的去中心化创新模式,为我们带来了新的希望和机遇。去中心化,这个充满活力与创造力的理念,正引领着我们走向未来的创新之路。 StarTowerChain …...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
