Python pytest 多线程执行测试用例报错,各位大神帮忙看看

大瓶子 · 2022年09月08日 · 最后由 大瓶子 回复于 2022年09月13日 · 7284 次阅读
#文件./test_case/test_login2.py
import pytest
class Test_login_fail():
    def test_login_fail(self):
        print('测试用例2操作')
if __name__ == '__main__':
    pytest.main()
#文件./test_case/test_login3.py
import pytest
class Test_login_fail():
    def test_login_fail(self):
        print('测试用例3操作')
if __name__ == "__main__":
    pytest.main(["-s", "test_b.py", '--workers=2', '--tests-per-worker=4'])

#文件run.py
import pytest
pytest.main(["-s", "./test_case",'--workers=1', '--tests-per-worker=2'])

执行 run.py 报错:


最佳回复

已解决了

共收到 6 条回复 时间 点赞

这是使用了 pytest-parallel 吧,这个插件支持多进程和多线程,--workers 表示进程数,--tests-per-worker 表示线程数。但需注意,--workers 在 Windows 上不起作用,而--tests-per-worker 支持 Linux/Mac/Windows。

Thirty-Thirty 回复

是这样的,但是为什么执行就出错了

你试试把执行命令放到main里面

大瓶子 回复

参考这篇文章:pytest 多进程/多线程执行测试用例
https://blog.csdn.net/weixin_45005677/article/details/125588921

大瓶子 关闭了讨论 09月13日 11:42
大瓶子 重新开启了讨论 09月13日 11:42

已解决了

Thirty-Thirty 回复

python 从 3.9 降到了 3.8,pytest-parallel 降到 0.0.10,多线程跑起来了,但是效果不对

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册