pytest框架

本文介绍了pytest框架用于Python的自动化测试,包括其用例编写规则、安装方法,以及常用插件如控制执行顺序、跳过和参数化测试、配置文件pytest.ini的使用。还讨论了如何处理失败用例的重试和标记特定用例执行的方法。
摘要由CSDN通过智能技术生成

pytest框架:是python的一个第三方的单元测试框架,适用于自动化测试
基于pytest框架编写自动化测试用例。执行用例并输出测试报告。
pytest框架用例编写规则:
1、测试用例所在的.py文件,命名必须以test_开头或_test结尾。
2、测试用例所在类命名必须以Test开头
3、测试用例定位为函数或方法,命名必须以test_开头。
断言关键字:assert

pytest安装:pip install pytest

断言机制:
当assert 后的结果为True时,用例断言通过,会标识为pass,
如果assert后的结果为False时,用例断言失败,会标识为failed,并报出AssertionError异常
如果脚本执行过程中出现问题,报出非AssertionError异常,用例标识为error

pytest框架常用插件
插件网站:https://docs.pytest.org/en/latest/reference/plugin_list.html

1、控制用例执行顺序
插件:pytest-ordering
安装: pip install pytest-ordering
使用:在用例上添加装饰器@pytest.mark.run(order=x)
order参数的值决定了用例的执行顺序,order的值可以是整数,可以是负数。
用例可以设置装饰器,也可以不设置装饰器。
用例执行时,先执行正数的,再执行没有设置装饰器的,再执行负数的。
执行时值越小,执行优先级越高

2、跳过用例执行
在用例上添加装饰器
@pytest.mark.skip() #无条件跳过
@pytest.mark.skipif(condition,reason)  #有条件跳过
condition:跳过条件,值为True则会跳过,为False则不会跳过
reason:跳过原因

3、测试用例参数化
在用例上添加装饰器@pytest.mark.parametrize()


pytest.ini文件:
pytest框架的配置文件,可以配置用例执行时的参数
addopts :设置ptest命令执行时的参数
testpaths :设置测试用例文件所在目录
python_files :设置用例文件的命名规则
python_classes :测试用例类的命名规则
python_functions :测试用例命名规则


4、控制失败用例重新执行
安装插件:pytest-rerunfailures
方法一:
在pytest命令后,添加参数 --reruns 执行次数   ,可以添加到pytest.ini文件中

方法二:
在用例上添加装饰器@pytest.mark.flaky(reruns=x,reruns_delay=t)
reruns=重新执行的次数
reruns_delay=延迟时间

当flaky装饰器和reruns参数同时使用时,flaky装饰器优先级更高


5、标记用例执行(指定哪些用例执行)
在pytest.ini文件中添加markers参数,参数后设置标签
markers = 标签1
          标签2
          标签3

执行时,在用例上添加装饰器@pytest.mark.标签名

执行时,
pytest -m 标签1 :设置了标签1的用例执行
pytest -m "标签1 and 标签2" :同时设置了标签1和标签2的用例执行
pytest -m "标签1 or 标签2" :设置了标签1或标签2的用例执行


pytest框架的前置方法和后置方法:
前置方法:实现用例执行前的过程
后置方法:实现用例执行后的过程
setup_module(),teardown_module():整个模块的用例执行前执行setup_module,整个模块的用例执行完成后执行teardown_module
setup_class(),teardown_class():整个类中的用例执行前执行setup_class,整个类的用例执行完成后执行teardown_class
setup_function(),teardown_function():每一个定义为函数的用例执行前执行setup_function,执行后执行teardown_function
setup_method(),teardown_method():每一个定义为方法的用例执行前执行setup_method,执行后执行teardown_method
setup和teardown:等同于setup_method(),teardown_method(),现在已被淘汰,基本不使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值