插件分类
- 外部插件:第三方库,需要通过pip install安装的;
- 本地插件:自己写的,放在conftest.py文件中存放的;
- 内置插件:代码内部_pytest目录加载的,如hook函数;
常用外部插件有:
官网url:https://pypi.org/project/pytest-order/
- pytest-ordering 控制用例的执行顺序*
- pytest-xdist 分布式并发执行测试用例 *
- pytest-dependency 控制用例的依赖关系
- pytest-rerunfailures 失败重跑
- pytest-assume 多重校验
- pytest-random-order 用例随机执行
- pytest-html 测试报告
1.插件pytest-ordering
正常来说是顺序执行,如果想自定义用例的执行顺序,可以使用pytest-ordering插件。
先安装第三方库pip install pytest-ordering
,然后用pytest-ordering插件加上顺序,执行则按顺序执行,order顺序从1开始执行。
import pytest
@pytest.mark.run(order=2)
#@pytest.mark.second
def test_case1():
print("1")
@pytest.mark.run(order=1)
#@pytest.mark.first
def test_case2():
print("2")
def test_case3():
print("3")
2.插件pytest-xdist
pip install pytest-xdist
安装第三方库
- 场景1:人力换时间成本,一条用例执行1分钟,1000条,1000分钟,常用加人来缩短用例执行时间
- 场景2:一个接口,同时高并发请求
创建一个test_xdist.py文件,分别用pytest-xdist 方式执行和不用pytest-xdist 方式执行
from time import sleep
def test_case1():
sleep(1)
print("1")
def test_case2():
sleep(1)
print("2")
def test_case3():
sleep(1)
print("3")
1.pytest test_xdist.py
直接执行,花了 3 passed in 3.04s;
2.用插件执行pytest test_xdist.py -n auto
,花了 3 passed in 2.80s,执行时间有缩短,当我们用例非常多的时候能看到明细变化,-n auto会自动调度空闲的cpu来完成任务;
网友评论