Pytest自动化测试的具体使用
作者:SuperStar77
Pytest是Python中最流行的自动化测试框架之一,简单易用,而且具有丰富的插件可以不断扩展其功能,同时也提供了丰富的断言功能,使得编写测试用例更灵活。
一、Pytest如何安装
一般都使用pip来安装:
pip install pytest
二、Pytest如何编写用例
创建一个python文件(test_example.py),并编写以下代码:
# test_example.py def add(a,b): # 定义函数 return a+b def test_add(): # 编写测试用例 assert add(1,2) == 3 # assert断言
三、Pytest如何运行用例
打开终端,在对应的工作目录下,输入命令:
pytest test_example.py
四、Pytest如何实现参数化
import pytest def add(a, b): return a + b @pytest.mark.parametrize("a, b, expected", [(1, 2, 3), (0, 0, 0), (-1, 1, 0)]) def test_add(a, b, expected): result = add(a, b) assert result == expected
五、Pytest如何跳过和标记用例
import pytest @pytest.mark.skip("This function is not completed yet") def test_uncompleted_function(): pass @pytest.mark.slow def test_slow_function(): # 此处放慢测试的代码 pass
六、Pytest如何失败重执行
首先安装失败重跑插件:pytest-rerunfailures
pip install pytest-rerunfailures
插件参数:
命令行参数:–reruns n(重新运行次数),–reruns-delay m(等待运行秒数)
装饰器参数:reruns=n(重新运行次数),reruns_delay=m(等待运行秒数)
如果想要重新执行所有测试用例,直接输入命令:
pytest --reruns 2 --reruns-delay 10 -s
上述首先设置了重新运行次数为2,并且设置了两次运行之间等待10秒。
如果想重新运行指定的测试用例,可通过装饰器来实现,命令如下:
import pytest @pytest.mark.flaky(reruns=3, reruns_delay=5) def test_example(): import random assert random.choice([True, False, False])
七、Pytest如何使用夹具
首先创建夹具,代码如下:
@pytest.fixture() def test_example(): print('case执行之前执行') yield print('case执行之后执行')
使用夹具方式1:通过参数引用
def test_case(test_example): print('case运行中')
使用夹具方式2:通过函数引用
@pytest.mark.usefixtures('test_example') def test_case(): print('case运行中')
八、Pytest如何进行夹具共享
夹具共享:conftest.fy文件,可以跨多个文件共享夹具,而且在用例模块中无需导入,pytest会自动发现conftest.py中的夹具。
fixture 优先级:当前所在模块---> 当前所在包的 conftest.py--->上级包的 conftest.py--->最上级的 conftest.py
九、Pytest如何设置夹具作用域
作用域执行的优先级:session > module > class > function
根据@pytest.fixture()中scope参数不同,作用域区分:
- function(函数):默认值。每个测试用例函数执行时都会执行一次。
- class(类):不论有多少测试用例,整个类只会运行一次。
- module(模块):不论有多少测试用例,整个模块(文件)下只运行一次。
- package(包):不论有多少测试用例,整个包(文件夹)下只运行一次。
- session:不论有多少测试用例,整个pytest下只会运行一次。
到此这篇关于Pytest自动化测试的具体使用的文章就介绍到这了,更多相关Pytest自动化测试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!