系列分享
Pytest系列(一)初次了解
Pytest(二)执行规则以及编写执行多条用例
Pytest(三)Pytest执行命令
Pytest(四)Pytest断言
Pytest(五)标记函数
Pytest(六)跳过测试
Pytest(七) pytest之参数化
Pytest(八) pytest Fixture(一)
Pytest(九) pytest Fixture(二)
Pytest(十) pytest Fixture(三)
Pytest(十一) pytest ini文件
Pytest(十二) Pytest产生测试报告
Pytest(十三)durations统计用例运行时间
Pytest(十四)用例执行顺序
在很多的用例执行的过程中,有时候的失败 不一定是真正的失败,可能是因为网络等因素导致的,但是这样的用例结果,直接反馈给我们,是无法有说服力的,这样的问题应该如何解决呢。
用例重试可以很好的解决,在用例执行识别的时候,再次执行识别的用例,重试到配置的次数后,再把用例置为失败。尽可能的避免因为一些外界因素干扰。
pytest如何重试呢。方法很简单。
代码语言:javascript复制pip3 install pytest-rerunfailures
安装依赖库。
如何使用呢?
有两个方法可以使用。
方法一:
代码语言:javascript复制pytest --reruns 5 --reruns-delay 2 -s
含义:
代码语言:javascript复制reruns :最大重试次数
reruns_delay :重试间隔时间,单位是秒
我们执行若有的用例,然后失败重试5次。
写了一个错误的脚本,如下
代码语言:javascript复制def test_api():
assert 1 == 2
执行下
可以看到,重试了5次,看到执行了时间是10.17s,因为在失败后,间隔2s再次重试的。
方法二:
代码语言:javascript复制@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_api():
assert 1 == 2
在用例的上面设置,这样在执行的时候,只有在特定的用例上重试,更加的让使用者更大的自主化。
看下执行结果:
通过引入失败重试的方法,在实际的使用中,可以根据实际的用例,进行不同方式的重试,最大程度的去避免,在实际的执行中,因为不固定的因素导致用例执行失败。
一般情况下,考虑设置3-5次最为稳妥,当然,要根据实际的项目来设置,既要保证最大程度去减少外部环境对自动化的影响,又要保证用例执行的效率。可以根据自己的实际项目经验去配置。