简介
Pytest 支持测试用例的并行运行和分布式运行,这可以加速测试执行,特别是在大型测试套件中。
使用场景
- 场景一
测试用例 1000 条,一个用例执行 1 分钟,一个测试人员执行需要 1000 分钟。
通常我们会用人力成本换取时间成本,加几个人一起执行,时间就会缩短。
如果 10 人一起执行只需要 100 分钟,这就是一种分布式场景。
- 场景二
假设有个报名系统,对报名总数统计,数据同时进行修改操作的时候有可能出现问题,需要模拟这个场景,需要多用户并发请求数据。
解决方案:使用分布式并发执行测试用例。
使用步骤
-
分布式插件 :
pytest-xdist -
安装及运行 :
pip install pytest-xdist-
注意:用例多的时候效果明显,多进程并发执行,同时支持allure。
-
代码示例
pythonfrom time import sleep def test_foo(): sleep(1) assert True def test_bar(): sleep(1) assert True def test_bar1(): sleep(1) assert True- 执行
pytest -n auto启用并行测试,它会自动检测计算机的 CPU 核心数量,并根据可用的核心数来并行运行测试用例,以加快测试执行速度。- 运行结果

- 运行结果
- 执行
-
-
深入了解
pytest的并行 / 分布式,不是 pytest 本体功能,而是靠pytest-xdist插件:

- 主进程(master):只负责「收集用例 + 分发」
- worker:真正执行测试
📌 pytest 本身:单进程、单线程
📌 并行 / 分布式:进程级隔离
并且需要注意:
❌ pytest 并行 ≠ 多线程
✅ pytest 并行 = 多进程