我正在尝试构建一个测试我的互联网连接延迟的工具,更具体地说是网站加载时间。我想过将python requests模块用于加载部分。
问题是,它没有内置功能来衡量获得完整响应所需的时间。为此,我想我会使用timeit
模块。
我不确定的是,如果我像这样运行timeit:
t = timeit.Timer("requests.get('http://www.google.com')", "import requests")
我是否真的在测量响应到达的时间,还是需要构建,发送,接收等等的时间?我猜我可能会忽略那个超时时间,因为我正在测试延迟很长的网络(约700毫秒)?
有没有更好的方法以编程方式执行此操作?
答案 0 :(得分:156)
最新版本的请求中有这样的功能:
http://docs.python-requests.org/en/latest/api/?highlight=elapsed#requests.Response.elapsed
例如:
requests.get("http://127.0.0.1").elapsed.total_seconds()
答案 1 :(得分:26)
至于你的问题,它应该是
的总时间衡量单个请求加载时间的其他方法是使用urllib:
nf = urllib.urlopen(url)
start = time.time()
page = nf.read()
end = time.time()
nf.close()
# end - start gives you the page load time
答案 2 :(得分:1)
response.elapsed
返回一个 timedelta 对象,其中包含从发送请求到响应到达所用的时间。通常用于在某个时间点 elapsed
后停止连接。
# import requests module
import requests
# Making a get request
response = requests.get('http://stackoverflow.com/')
# print response
print(response)
# print elapsed time
print(response.elapsed)
输出:
<Response [200]>
0:00:00.343720