Requests库(七)重定向和超时

2021-03-15 16:29:04 浏览数 (1)

由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ⭐,你就可以第一时间接收到本公众号的推送!

Requests库分享系列:

Requests库(一)

Requests库(二)

Requests库(三)如何获取接口传参参数

Requests库(四)如何传递不一样的参数

Requests库(五)接口返回状态码

Requests库(六)接口返回响应头和请求Cookies


如果网页被重定向了,我们怎么追踪呢,其实很简单。

我们可以用响应对象的history 来获取。

代码语言:javascript复制
import requests
r=requests.get('http://github.com')
print(r.history)

结果展示如下

我们可以禁止请求的重定向,requests 给我们提供了便利。我们可以直接用allow_redirects来禁止重定向。

代码语言:javascript复制
import requests
r=requests.get('http://github.com',allow_redirects=False)
print(r.history)
print(r.status_code)

我们可以看下可以看到了,没有重定向了,但是接口返回的301,在之前的请求的时候,没有禁止重定向就直接重定向了。我们限制后,就无法重定向了。

看完重定向,我们在实际中可以看下 接口的时候是否重定向到新的url。

我们在请求的时候呢,发现了请求的返回比较慢,但是呢,我们实际的测试中呢,对于接口的响应时长是有要求的,太长了对于用户来说,体验不佳,在大量用户访问的时候,可能导致系统瘫痪,所以我们在做接口的时候就要做这些工作,那么我们在请求的时候,如何控制接口的时长呢,比如我们想要接口在200ms中返回,不返回就抛出来异常之类的。其实Requests也给我们提供了这样的参数。我们看下是如何实现的。

代码语言:javascript复制
import requests
r=requests.get('http://github.com',timeout=0.2)
print(r.status_code)

接口返回如下:

我们可以看到,当接口超过了规定的时长后,就给我们抛出来这个异常了,那么我们在实际的请求中,可以做下面的处理。

代码语言:javascript复制
import requests
from  requests import ConnectTimeout
try:
    r=requests.get('http://github.com',timeout=0.2)
    print(r.status_code)
except ConnectTimeout as e:
    print("接口太慢了")

我们可以运行下,

那么我们在实际的项目测试中,就可以用到了这里,在接口功能测试的时候,就开始分析接口的响应的时长,这样 我们可以尽早发现问题,尽早处理。把问题解决在上线之前。在接口测试中,对于接口耗时的处理也是接口测试的另一种收益。


点个在看,你最好看。

0 人点赞