网络-使用Python请求衡量网站加载时间

我正在尝试构建一个工具来测试我的Internet连接的延迟,更具体地说是网站加载时间。 我想到了将python request模块用于加载部分。

问题是,它没有内置功能来衡量获得完整响应所花费的时间。 为此,我认为我将使用timeit模块。

我不确定的是,如果我像这样运行timeit:

t = timeit.Timer("requests.get('http://www.google.com')", "import requests")

我实际上是在衡量响应到达所花费的时间,还是建立,发送,接收请求等所花费的时间? 我猜我可能会忽略执行时间,因为我正在测试延迟很长的网络(〜700ms)?

有没有更好的方法以编程方式执行此操作?

cookM asked 2020-08-12T10:06:29Z
2个解决方案
166 votes

最新版本的请求中包含以下功能:

[HTTP://docs.Python-requests.org/恩/latest/API/?highlight=elapsed#requests.response.elapsed]

例如:

requests.get("http://127.0.0.1").elapsed.total_seconds()
GvS answered 2020-08-12T10:07:26Z
29 votes

关于您的问题,应该是总时间

  1. 是时候创建请求对象了
  2. 发送请求
  3. 收到回应
  4. 解析响应(请参阅Thomas Orozco的评论)

衡量单个请求加载时间的其他方法是使用urllib:

nf = urllib.urlopen(url)
start = time.time()
page = nf.read()
end = time.time()
nf.close()
# end - start gives you the page load time
pyfunc answered 2020-08-12T10:06:57Z
translate from https://stackoverflow.com:/questions/11159687/measure-website-load-time-with-python-requests