前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pytest(十五)重试机制

Pytest(十五)重试机制

作者头像
雷子
发布2022-04-06 08:38:49
1.3K0
发布2022-04-06 08:38:49
举报
文章被收录于专栏:雷子说测试开发

系列分享

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档