python利用requests统计1个接口的响应时间

参照

https://www.cnblogs.com/yoyoketang/p/8035428.html

requests统计接口的响应时间有2种方式

  • r.elapsed.total_seconds()
  • r.elapsed.microseconds/(1000*1000)

但是第2种方式,当调用的接口响应时间大于1s时,得到的响应时间是不准确的。下面来看示例

首先看接口响应时间小于1s时,分别使用2种方式得到 post "https://www.baidu.com/"  的响应时间

代码示例:

import requests

url = "https://www.baidu.com/"

r = requests.post(url)

# print(r.text)

#推荐使用这种方式统计一个接口的响应时间,准确性更高
print(r.elapsed.total_seconds())

#当接口的响应时间大于1s时,下面这种统计方式就会不准确
print(r.elapsed.microseconds/(1000*1000))

运行结果:

0.039872
0.039872

 再测试一个接口响应时间超过1s的接口,

然后看接口响应时间大于1s时,分别使用2种方式得到 post "http://cn.python-requests.org/zh_CN/1atest/的响应时间

果然发现2种方式统计的结果不一样了呢

import requests

url = "http://cn.python-requests.org/zh_CN/1atest/"

r = requests.post(url)

# print(r.text)
#结果正确
print(r.elapsed.total_seconds())
#结果不正确
print(r.elapsed.microseconds/(1000*1000))

运行结果:

1.298427
0.298427

很显然,r.elapsed.microseconds/(1000*1000)在接口的响应时间大于1s时,只截取了后面的小数部分