pytest(5)-多进程并行执行用例

pytest(1)-安装以及快速入门

pytest(2)-默认用例命名规则

pytest(3)-各个层级的setup和teardown详解

pytest(4)-失败的用例重新执行

pytest(5)-多进程并行执行用例

pytest(6)-失败N次后停止执行

pytest(7)-fixture详解

pytest(8)-win10安装配置allure

pytest(9)-生成allure执行报告

pytest(10)-参数化详解

pytest(11)-allure报告定制样式

pytest(12)-allure报告定制logo

pytest(13)-定制自定义命令行参数

pytest(14)-自定义测试文件、测试用例、测试类命名规则

pytest(15)-标签mark使用详解

pytest(16)-消除mark标签产生的告警

pytest(17)-定制pytest命令的默认行为

pytest(18)-指定搜索脚本路径

1、不使用并发执行用例方式

如下有十个用例,每个用例中等待5秒,使用pytest顺序执行

import time

def test_testcase_01():
    time.sleep(5)

def test_testcase_02():
    time.sleep(5)

def test_testcase_03():
    time.sleep(5)

def test_testcase_04():
    time.sleep(5)

def test_testcase_05():
    time.sleep(5)

def test_testcase_06():
    time.sleep(5)

def test_testcase_07():
    time.sleep(5)

def test_testcase_08():
    time.sleep(5)

def test_testcase_09():
    time.sleep(5)

def test_testcase_10():
    time.sleep(5)

执行结果如下:耗时50秒
pytest(5)-多进程并行执行用例_第1张图片

2、使用并发执行方式

  • 安装pytest-xdist插件 pip install pytest-xdist
  • 使用 pytest -n auto 默认自动检查系统cpu个数,然后进行并发
    执行结果如下:
    在这里插入图片描述
  • 也可以指定并发数 pytest -n 2 即并发数2执行
    执行结果如下:
    在这里插入图片描述
  • 在当前目录下创建一个conftest.py,内容如下,然后使用pytest -n auto
import pytest
import time

@pytest.fixture(scope="session",autouse=True)
def fixture_demo():
    time.sleep(10)

执行结果如下:
在这里插入图片描述
和上面的结果对比分析可以发现,在并发执行的场景下,pytest仍然遵守session级别的fixture只执行一次的原则,因为和上次执行多耗时10秒,而此次conftest.py中的fixture等待了10秒,所以说明这个fixture只执行了一次

更多实例请参考 pytest并发执行实例

你可能感兴趣的:(Pytest,python)