当前位置: 首页 > news >正文

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

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 Interruptrel.dispatch()

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

在这里插入图片描述

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

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

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

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

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

相关文章:

  • WEBAPI返回图片显示在VUE前端
  • 设置随机种子保证网络可复现性
  • JAVA代码优化:Spring中redis的工具类
  • Java Web——动态Web开发核心-Servlet
  • 短线买入卖出有哪些交易技巧?
  • 使用 Mybatis 的 TypeHandler 存取 Postgresql jsonb 类型
  • 固态硬盘与机械硬盘的区别
  • Java的多态性
  • 栈和队列的OJ题——14.用栈实现队列
  • 区块链媒体:Web3.015个方法解析-华媒舍
  • 华为OD机试真题-找城市-2023年OD统一考试(C卷)
  • KDE环境文件夹user-dirs为英文
  • android 13.0 framework禁用系统所有通知
  • Elasticsearch 优化查询中获取字段内容的方式,性能提升5倍!
  • 在Spring Boot中隔离@Async异步任务的线程池
  • ----------
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【5+】跨webview多页面 触发事件(二)
  • CSS实用技巧干货
  • download使用浅析
  • gitlab-ci配置详解(一)
  • IDEA 插件开发入门教程
  • Javascript 原型链
  • JavaScript服务器推送技术之 WebSocket
  • Less 日常用法
  • PAT A1092
  • PHP的Ev教程三(Periodic watcher)
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Python学习笔记 字符串拼接
  • vue.js框架原理浅析
  • Zepto.js源码学习之二
  • 从0实现一个tiny react(三)生命周期
  • 关于springcloud Gateway中的限流
  • 记录一下第一次使用npm
  • 前端攻城师
  • 正则学习笔记
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​2021半年盘点,不想你错过的重磅新书
  • (1)Android开发优化---------UI优化
  • (C++17) optional的使用
  • (Matlab)使用竞争神经网络实现数据聚类
  • (pojstep1.1.2)2654(直叙式模拟)
  • (差分)胡桃爱原石
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (六)Hibernate的二级缓存
  • (三)docker:Dockerfile构建容器运行jar包
  • (生成器)yield与(迭代器)generator
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • .NET 指南:抽象化实现的基类
  • /boot 内存空间不够
  • [ IOS ] iOS-控制器View的创建和生命周期