Pytest(十五)重试机制

2022-04-06 08:38:49 浏览数 (1)

系列分享

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次最为稳妥,当然,要根据实际的项目来设置,既要保证最大程度去减少外部环境对自动化的影响,又要保证用例执行的效率。可以根据自己的实际项目经验去配置。

uml

0 人点赞