pytest 顺序执行、重复执行、失败重试
一、执行顺序
1、pytest执行顺序一般是按照从上往下的顺序执行的,如果使用过程中想要指定顺序,可以使用order标签
2、使用order标签之前需要先安装它的插件:pytest-ordering
二、重复执行
1、有时候我们需要执行的全部用例或者部分用例想要重复执行多次执行的场景,pytest给我们提供了了一个很好的插件 pytest-repeat
,简单添加一些参数就可以实现
2、我们先安装插件pip install pytest-repeat
3、用法:
-
添加参数
其中num表示执行多少次--count=num ,
-
在需要重复执行的用例上使用装饰器
@pytest.mark.repeat(num)
,
其中num表示执行多少次
用法一:
--count=2 执行2次
这个文件中有2个用例,每个用例都会执行2次
用法二:
使用装饰器方式 @pytest.mark.repeat(num)
代码示例:
这个文件中有2个用例,第一个用例执行了2次
三、失败重试
1、当部分用例因为一些偶然因素运行失败时,可以使用失败重试机制,比如在平时在做接口测试的时候,经常会遇到网络抖动或者环境问题导致测试用例运行失败,而这个并不是我们想要的结果,我们想要重新运行失败的测试用例,这个就需要通过插件pytest-rerunfailures来实现了。
2、首先需要安装插件: pip install pytest-rerunfailures
3、用法
- 使用@pytest.mark.flaky()完成重试
- --reruns num --reruns-delay time # num 表示重试的次数,time 每次失败后重试时间间隔多少秒
用法一:
--reruns=2 执行2次,--reruns-delay 3 每次失败后重试时间间隔3秒,这个文件中有2个用例,其中一个第一次执行时候会失败
我们看到,第一次执行时候,我们返回了空数据,其实是会报错的,那么就会执行失败重试机制
最终结果:我们共2条用例,其中第二条成功,第一条失败,重试了2次且还是失败
用法二:
共2条用例,假设第一条可能失败,失败重新跑1次