py.test中如何实现并行测试?求Python3并行测试方案推荐
在py.test中实现并行/并发测试及Python3环境下的替代方案
一、py.test的并行测试实现
当然能在py.test里搞并行/并发测试啦!虽然py.test本身没内置这个功能,但靠一款成熟的第三方插件pytest-xdist就能轻松搞定,这也是我平时做测试时常用的方案:
- 安装插件:先执行这个命令装一下
pip install pytest-xdist - 运行并行测试:
- 让工具自动根据你的CPU核心数分配进程:
pytest -n auto - 自己指定具体进程数(比如开4个进程跑):
pytest -n 4
- 让工具自动根据你的CPU核心数分配进程:
- 额外亮点:它还支持把测试任务分发到多台机器上做分布式测试,跨平台兼容性也拉满,而且能和
pytest-cov这类常用插件完美配合。
二、其他Python3环境下的并行测试方案
要是pytest-xdist刚好不符合你的需求,还有这些靠谱的选择:
- pytest-parallel:同时支持多进程和多线程两种模式,适合需要灵活控制执行方式的场景。安装后用
pytest --workers auto启动多进程模式,或者pytest --workers auto --tests-per-worker auto开启多线程+多进程的混合模式。 - unittest-parallel:如果你的项目用的是Python标准库的
unittest框架,这个插件能直接让你的unittest用例并行跑起来,装完之后用unittest-parallel命令替换原来的unittest命令就行,非常省心。 - concurrent.futures:如果需要完全自定义测试执行逻辑,Python3标准库的
concurrent.futures模块可以帮你实现底层的并发控制,适合有特殊定制需求的场景。
内容的提问来源于stack exchange,提问作者Samudranil Roy
相关产品推荐
相关产品推荐

