如果在发送请求时,因为网络抖动,从而导致当前的框架误报,应该怎么处理?

接口自动化的超时重试机制

1.超时设置

在发送请求时,加一个timeout参数
url=https://www.baidu.com
data={"username":"test22","password":"123456"}
response=requests.post(url=url,data=data,timeout=3) 设置超时时间为3s

2.重试retrying

retrying是一个python库,用来处理程序中的重试逻辑,retry库中的Retry类可以设置重试次数、异常类型、间隔时间等。
安装 pip install retrying

@retry(stop_max_attempt_number=3,wait_fixed=1000,retry_on_result=lambda x:x is None)
def request_with_retry(url):
    try:
        response=requests.get(url,timeout=3)
        if response.status_code==200:
            return response.json()
        else:
            return None
    except Exception as e:
        print("requests failed:",{e})
        
    
request_with_retry("https://www.baidu.com")  ```



使用retry装饰器为函数request_with_retry添加重试逻辑,`stop_max_attempt_number`定义了最大重试次数,`wait_fixed`定义重试之间的时间间隔,`retry_on_result`定义了返回结果是None时进行重试
posted @ 2024-05-27 21:38  cherish-github123  阅读(15)  评论(0编辑  收藏  举报