【自动化测试】pytest 用例执行中print日志实时输出

news2025/1/13 3:14:18

author: jwensh
date: 20231130

pycharm 中 pytest 用例执行中 print 日志 standout 实时命令行输出

使用场景

在进行 websocket 接口进行测试的时候,希望有一个 case 是一直执行并接受接口返回的数据

def on_message(ws, message):
    message = json.loads(message)
    if message is not None and message['total'] > 0:
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"), message)


class TestWss(unittest.TestCase):

    def test_bttc_todos(self):
        websocket.enableTrace(False)
        address = "*****"
        url = "{}/test/todos/{}".format(BASE_ENV_URL, address)
        ws = websocket.WebSocketApp(url,
                                    on_open=on_open,
                                    on_message=on_message,
                                    on_error=on_error,
                                    on_close=on_close)
        ws.run_forever(dispatcher=rel)  # 这里回一直卡住不然程序停止
        rel.signal(2, rel.abort)  # Keyboard Interrupt
        rel.dispatch()

直接点击 pycharm 上测试方法左侧的执行按钮
在这里插入图片描述
是没有任何 on_message 的日志输出

在这里插入图片描述

想要 on_message 中的日志能够实时打印,可以修改 pytest 的执行参数

修改参数来达到实时输出日志的效果

  • 设置 pycharm 执行测试使用的工具
    • 第三步设置成 pytest (pytest 也是兼容 nose 和 unittest, 所以推荐 )
      在这里插入图片描述
  • 在用例用例/调试配置里设置命令的其他参数
    • --capture=no 或者 -s (pytest -h 就能看到参数)
      在这里插入图片描述

再次执行用例就能有实时日志了

  • 最后: 构建自动化测试用例时,添加简洁且饱含核心信息的日志是非常有必要的。除了添加 pytest 参数形式来展示实时日志,还可以使用 logging 模块来实现运行测试用例的实时输出。
  • 可以按自己的需求来,如果只是调试什么的,可以直接用参数
  • 如果是想要保留测试过程的重要数据,建议使用 logging

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1274527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OSU(Optical Service Unit,光业务单元)简介

文章目录 应用场景和功能OSU关键技术基于PB的帧结构划分方式分组业务映射到OSU带宽无损调整机制 标准进展OSU构建电力系统全光底座,赋能新型电力系统 光传送网(OTN)具有大带宽、硬管道、多业务承载能力、电信级的OAM机制等技术优势&#xff0…

macOS本地调试k8s源码

目录 准备工作创建集群注意点1. kubeconfig未正常加载2. container runtime is not running3. The connection to the server 172.16.190.132:6443 was refused - did you specify the right host or port?4. 集群重置5.加入子节点 代码调试 准备工作 apple m1芯片 安装vmwa…

【JavaScript】3.4 JavaScript在现代前端开发中的应用

文章目录 1. 用户交互2. 动态内容3. 前端路由4. API 请求总结 JavaScript 是现代前端开发的核心。无论是交互效果,还是复杂的前端应用,JavaScript 都发挥着关键作用。在本章节中,我们将探讨 JavaScript 在现代前端开发中的应用,包…

Docker 镜像及其命令

文章目录 镜像Docker 镜像加载原理联合文件系统bootfs和rootfs镜像分层 镜像分层的优势容器层常用命令 镜像 镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境&#xff…

外贸独立站建站详细操作流程一览,跨境电商卖家营销必看!

独立站是一个独立的网站,包括有独立的服务器,独立的网站程序以及网站域名。关于独立站 的优势已经说了很多,本文就不再细谈,想了解的小伙伴可以自行查找之前发布的文章观看。 今天就来说说搭建独立站的详细步骤都有哪些&#xff1…

word模板导出word文件

前期准备工作word模板 右键字段如果无编辑域 ctrlF9 一下&#xff0c;然后再右键 wps 直接 ctrlF9 会变成编辑域 pom.xml所需依赖 <dependencies> <!--word 依赖--> <dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId…

R语言30分钟上手

文章目录 1. 环境&安装1.1. rstudio保存工作空间 2. 创建数据集2.1. 数据集概念2.2. 向量、矩阵2.3. 数据框2.3.1. 创建数据框2.3.2. 创建新变量2.3.3. 变量的重编码2.3.4. 列重命名2.3.5. 缺失值2.3.6. 日期值2.3.7. 数据框排序2.3.8. 数据框合并(合并沪深300和中证500收盘…

深度学习(一):Pytorch之YOLOv8目标检测

1.YOLOv8 2.模型详解 2.1模型结构设计 和YOLOv5对比&#xff1a; 主要的模块&#xff1a; ConvSPPFBottleneckConcatUpsampleC2f Backbone ----->Neck------>head Backdone 1.第一个卷积层的 kernel 从 6x6 变成了 3x3 2. 所有的 C3 模块换成 C2f&#xff0c;可以发现…

AIGC实战——生成对抗网络(Generative Adversarial Network)

AIGC实战——生成对抗网络 0. 前言1. 生成对抗网络1.1 生成对抗网络核心思想1.2 深度卷积生成对抗网络 2. 数据集分析3. 构建深度卷积生成对抗网络3.1 判别器3.2 生成器3.3 DCGAN 模型训练 4. GAN 训练技巧4.1 判别器强于生成器4.2 生成器强于判别器4.3 信息量不足4.4 超参数 小…

机器人AGV小车避障传感器测距

一、A22超声波传感器 该模块是基于机器人自动控制应用而设计的超声波避障传感器&#xff0c;针对目前市场上对于超声波传感器模组盲区大、测量角度大、响应时间长、安装适配性差等问题而着重设计。 具备了盲区小、测量角度小、响应时间短、过滤同频干扰、体积小、安装适配性高…

邀请函 | 合作发展,赋能增效--新架构下汽车电子软件研发技术研讨会

会议介绍 随着汽车智能化、网联化快速演进&#xff0c;“软件定义汽车、架构定义软件”愈发形成行业共识。汽车上的软件应用在提升用户体验、推动行业技术创新方面发挥着至关重要的作用。 在此背景下&#xff0c;如何有效地提升软件开发效率、更好地管理软件质量、满足行业安全…

iOS Swift 代码格式化工具

如果你的代码写得很乱&#xff0c;想一键盘整理代码&#xff0c;像大家推荐一款工具 &#xff08;PS&#xff1a;Xcode本身并没有代码格式化工具&#xff0c;这款工具为第三方开发的&#xff09; 这款工具名为&#xff1a;SwiftFormat 1&#xff1a;在GitHub上搜索“SwiftFo…

YOLOv8改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)

一、本文介绍 本文给大家带来的改进内容是SCConv&#xff0c;即空间和通道重构卷积&#xff0c;是一种发布于2023.9月份的一个新的改进机制。它的核心创新在于能够同时处理图像的空间&#xff08;形状、结构&#xff09;和通道&#xff08;色彩、深度&#xff09;信息&#xf…

中国毫米波雷达产业分析5——毫米波雷达应用案例介绍

一、上海某区康养标杆工程 项目甲方&#xff1a;上海某康养中心 项目地点&#xff1a;上海徐汇区 项目时间&#xff1a;2023年8月 供应商&#xff1a;南京苗米科技有限公司 &#xff08;一&#xff09;项目需求 该康养社区集中收治了区内75岁以上老龄化人群和部分阿尔茨海默…

RubyMine 2023 年下载、安装、使用教程,详细图解

大家好&#xff0c;今天为大家带来的是RubyMine 2023 年下载、安装、使用教程&#xff0c;详细图解。 文章目录 1 RubyMine 简介2 RubyMine 下载、安装教程RubyMine 下载RubyMine 安装 3 RubyMine 汉化4. 常用快捷键一级必会二级进阶 1 RubyMine 简介 RubyMine 是一个为 Ruby …

CRM系统:让企业商机管理变得轻松愉快

传统企业的经常出现团队分工不合理、实施过程不可见、进度难以把控等情况。这样不仅会让项目实施周期变长&#xff0c;还会导致客户满意度降低&#xff0c;给企业的发展带来了不好的影响。因此&#xff0c;进行商机管理至关重要。那么&#xff0c;CRM系统如何进行企业的商机阶段…

做热衷的事情,看向往的风景,遇见更多美好,早安

①‍ ʍօʀռɨռɢ ☼ (˘͈ᵕ ˘͈❀) ♡ ༘⋆ 岁月覆盖成长&#xff0c;而你愈发完满&#xff1b; 做热衷的事情&#xff0c;看向往的风景。 每天醒来将微笑别在衣襟&#xff0c; 就会遇见更多的美好事物。早安&#x1f324;️ ②生活就是这样&#xff0c;边失去边补偿&…

Redis7--基础篇5(管道、发布订阅)

管道是什么 管道(pipeline)可以一次性发送多条命令给服务端&#xff0c;服务端依次处理完完毕后&#xff0c;通过一条响应一次性将结果返回&#xff0c;通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的原理是队列&#xff0c;先进先出特性就保证数据的…

【数据结构】—AVL树(C++实现)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 &#x1f49c;本文前置知识&#xff1a; 搜索二叉树 ♈️今日夜电波&#xff1a;Letter Song—ヲタみん 1:36━━━━━━️&#x1f49f;──────── 5:35 …

TikTok美食狂潮:短视频如何塑造食物文化新趋势

短视频不仅成为分享美食的平台&#xff0c;更是塑造了一种全新的食物文化趋势。本文将深入探讨TikTok如何通过短视频影响食物文化&#xff0c;并推动美食体验的创新。 创意美食视频的崛起 传统的美食呈现方式通常通过图片或文字&#xff0c;而短视频带来了全新的美食呈现方式。…