前言
场景:随着项目越来越大、复杂,用例越来越多,串行的执行就需要太多的时间,就像测试部门一样,项目太多,项目完成的时间就越来越久,这就需要我们招聘更多的人,同时来测试项目,这样就提高了测试效率,但是需要尽量减少项目测试之间的关联性、耦合性。
Pytest 框架提供了一个pytest-xdist
插件帮我们做了这件事情,我们只需要简单的使用即可。
用例需要并发执行注意点
- 每条用例是独立的,没有依赖关系,完全解耦,用例可以完全独立运行
- 用例执行没有顺序,随机顺序都能正常执行
- 每个用例都能重复运行,运行结果不会影响其他用例
pytest-xdist 详解 (建议掌握程度:☆☆☆☆☆)
安装
- 在命令行窗口输入:
pip install pytest-xdist
- 查看安装版本:
pip show pytest-xdist
使用
使用方法 :
- pytest -n num (代表使用num个CPU)
- pytest -n auto
- n auto:可以自动检测到系统的CPU核数;从测试结果来看,检测到的是逻辑处理器的数量
- 使用auto等于利用了所有CPU来跑用例,此时CPU占用率会特别高
说明:建议最多使用1/2的CPU个数来进行执行,消耗资源太多,导致电脑太卡
先看下不使用分布式执行
# !/usr/bin/python3
# _*_coding:utf-8 _*_
""""
# @Time :2021/7/10 13:31
# @Author : king
# @File :test_xdist.py
# @Software :PyCharm
# @blog :https://blog.youkuaiyun.com/u010454117
# @WeChat Official Account: 【测试之路笔记】
"""
import pytest
import time
def test_01():
time.sleep(1)
print("我是 test_01 用例")
assert True
def test_02():
time.sleep(1)
print("我是 test_02 用例")
assert True
def test_03():
time.sleep(1)
print("我是 test_03 用例")
assert True
def test_04():
time.sleep(1)
print("我是 test_04 用例")
assert True
def test_05():
time.sleep(1)
print("我是 test_05 用例")
assert True
def test_06():
time.sleep(