pytest-xdist 日志打印问题

当使用pytest-xdist进行并发测试时,由于logging模块的handlers不支持多进程,导致日志打印出现问题。解决方案是使用ConcurrentLogHandler扩展logging模块,确保进程安全。通过安装并使用ConcurrentLogHandler,配合pytest -n参数,可以正常执行并发测试并打印日志。
摘要由CSDN通过智能技术生成

                                            pytest-xdist 日志打印问题

           问题描述:

           pytest-xidst: 进程级的并发运行pytest插件,-n  指定CPU数量, --loadfile 参数来控制顺序 ,默认是无序。

           在利用pytest-xidst实现case并发执行,与框架中的日志处理logging模块不兼容,遇到一些日志打印问题。 logging模块内日志轮转的handlers是多线程安全,不支持多进程。所以需要改动日志框架支持多进程。

           简要说明下logging模块常用的handlers:

  • StreamHandler: 将日志信息输出到sys.stdout, sys.stderr 或者类文件对象,日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stderr。
def __init__(self, filename, mode='a', encoding=None, delay=False):
  • FileHandler:继承自StreamHandler。将日志信息输出到磁盘文件上。

           

          解决方案:可修改源码加锁保证进程安全。我这里选取现有ConcurrentLogHandler模块进行处理

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值