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

pytest并发执行用例方案

背景

开始做新项目的UI自动化,需要考虑用例的并发执行,因为之前做的项目是通过插件pytest-parallel 0.1.1 + pytest-multithreading-allure 1.0.8来实现的,所以这次也打算用此方法,然而在实际使用过程中发现一些问题。

问题一

通过 pytest --workers n 运行后出现报错,错误是:AttributeError: Can't pickle local object 'pytest_addoption.<locals>.label_type.<locals>.a_label_type'
解决方法:由于运行环境是windows,查资料windows上要安装0.0.10版本, 之前都是在mac或者Linux环境上运行没有遇到此问题

问题二

pytest-parallel降级为版本0.0.10,再次运行,还是会报错,但错误是:

…………
AttributeError: '_Environ' object has no attribute 'putenv'

解决方法: 参考https://github.com/kevlened/pytest-parallel/issues/89#issuecomment-797698926进行修改,修改后执行 pytest --tests-per-worker n 可以多线程运行, window上pytest --workers n 时,n只能是1

总结

  1. 经过上面的折腾终于解决了windows上使用pytest-parallel的问题,但是始终要去修改pytest-parallel中的内容,决定改为使用pytest-xdist,安装最新版本的pytest-xdist , 安装后执行 pytest -n n即可 , 发现pytest-xdist会导致scope=session的fixture设置失效,即导致每个用例都会执行一次此fixture,正常情况是只需要执行一次的,详见session失效的解决办法
  2. 如果运行环境是Linux或者mac,应该还是会优先选择pytest-parallel
http://www.lryc.cn/news/347681.html

相关文章:

  • VO,PO,DTO
  • Java设计模式-工厂
  • 【JavaEE】【1.3 Servlet】1.3.6 监听
  • C#泛型委托
  • 从零开始精通RTSP之多播传输
  • (五)STM32F407 cubemx IIC驱动OLED(2)硬件篇
  • 头歌实践教学平台:CG1-v1.0-点和直线的绘制
  • java基础之面向对象的思想
  • 红黑树的理解和简单实现
  • 发表博客之:gemm/threadblock/threadblock_swizzle.h 文件夹讲解,cutlass深入讲解
  • 【C语言项目】贪吃蛇(下)
  • 【Unity实战|热更】Addressable读取SO文件报错解决
  • Web自动化 - selenium
  • 基于select for update 实现数据库分布式锁
  • Java后端实现对象与文件接收数据(minio测试)
  • 考研踩坑经验分享
  • Android Compose 一:基础控件
  • python3.12.0 在Linux 制作镜像包 部署到docker 全过程
  • STM32理论 —— μCOS-Ⅲ(新)
  • 衢州知识付费系统报价,教师如何做精品课程?怎么创造精品课程?
  • 在Vue中,可以通过使用<slot>元素和name属性来创建具名插槽。这样您就可以为一个组件的不同部分定义不同的内容。 以下是一个简单的示例:
  • C++笔试强训day19
  • MySQL软件安装基于压缩包
  • 04 贝尔曼最优公式
  • 印象笔记使用技巧
  • 产品设计中的“注册”说明
  • 【linux学习】多线程(1)
  • Leetcode 3149. Find the Minimum Cost Array Permutation
  • Python | 为列表中的元素分配唯一值
  • HTML炫酷的相册