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
相关推荐
小卓(friendhan2005)3 小时前
基于 Pytest + Selenium + Allure 的博客系统自动化测试实践
selenium·测试工具·pytest
金玉满堂@bj21 小时前
Pytest 完整使用教程
运维·服务器·pytest
测试员周周1 天前
【Appium 系列】第10节-手势操作实战 — 滑动、拖拽、缩放与轻拂
linux·服务器·开发语言·人工智能·python·appium·pytest
金玉满堂@bj1 天前
pytest+uiautomation+allure 数据驱动桌面自动化项目搭建指南-yaml版本
运维·自动化·pytest
金玉满堂@bj1 天前
pytest+uiautomation+allure+Excel 数据驱动桌面自动化
自动化·excel·pytest
Be reborn2 天前
用例不是孤立执行的:依赖、变量池与 storage_state 设计
python·自动化·pytest
小陈的进阶之路2 天前
安集商城接口自动化项目架构介绍
python·自动化·pytest
测试员周周2 天前
【Appium 系列】第08节-pytest 集成 — conftest.py 中的 fixture 与 hook
开发语言·人工智能·python·功能测试·appium·测试用例·pytest
Be reborn2 天前
从一行 CSV 到一次浏览器操作:关键字驱动执行引擎设计
python·自动化·pytest
魔都吴所谓3 天前
【开源LiteReport】告别 JDK 依赖 -- 用 LiteReport 为 pytest 项目打造轻量级测试报告
开源·pytest