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