python接口自动化(十七) requests获取响应时间(elapsed)与超时(timeout)
前言
requests發請求時,接口的響應時間,也是我們需要關注的一個點,如果響應時間太長,也是不合理的。
如果服務端沒及時響應,也不能一直等著,可以設置一個timeout超時的時間。
elapsed官方文檔
1.elapsed方法的官方文檔地址:http://cn.python-requests.org/zh_CN/latest/api.html
elapsed = None The amount of time elapsed between sending the request and the arrival of the response (as a timedelta). This property specifically measures the time taken between sending the first byte of the request and finishing parsing the headers. It is therefore unaffected by consuming the response content or the value of the stream keyword argument.
從發送請求到響應到達之間經過的時間量(以時間增量表示)。此屬性專門度量從發送請求的第一個字節到完成對頭的解析所用的時間。因此,它不受使用響應內容或stream關鍵字參數值的影響。
2.用help()查看elapsed里面的方法
import requests
r=requests.get("https://www.baidu.com")
print(help(r.elapsed))
elapsed里面幾個方法介紹
total_seconds 總時長,單位秒
microseconds: Number of microseconds (>= 0 and less than 1 second) 獲取微妙部分,大于0小于1秒
seconds:Number of seconds (>= 0 and less than 1 day) 秒,大于0小于1天
max = datetime.timedelta(days=999999999, seconds=86399, microseconds=9. 最大時間
min = datetime.timedelta(days=-999999999) 最小時間
resolution = datetime.timedelta(microseconds=1) 最小時間單位
獲取響應時間
1.獲取elapsed不同的返回值
import requests
r=requests.get("https://www.baidu.com")
print(r.elapsed)
print(r.elapsed.total_seconds())
print(r.elapsed.microseconds)
print(r.elapsed.seconds)
print(r.elapsed.days)
print(r.elapsed.max)
print(r.elapsed.min)
print(r.elapsed.resolution)
響應結果
2.網上很多資料寫的是用microseconds獲取響應時間,當請求小于1s時,發現不出什么問題,如果時間超過1s,問題就來了。
(很顯然,大于1s的時候,只截取了后面的小數部分)
3.所以獲取響應時間的正確姿勢應該是:r.elapsed.total_seconds(),單位是s
timeout超時
1.如果一個請求響應時間比較長,不能一直等著,可以設置一個超時時間,讓它拋出異常。
2.如下請求,設置超時為1s,那么就會拋出這個異常:requests.exceptions.ConnectionError: HTTPSConnectionPool
import requests
a=requests.get("http://cn.python-requests.org/zh_CN/latest/",timeout=1)
print(a.elapsed)
print(a.elapsed.total_seconds())
print(a.elapsed.microseconds)
    越努力,越幸運!!!
good good study,day day up!!!
總結
以上是生活随笔為你收集整理的python接口自动化(十七) requests获取响应时间(elapsed)与超时(timeout)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java rest风格传参_Spring
- 下一篇: java语言编写进制转换_Java 3种
