51

インターネット接続の遅延、より具体的には Web サイトの読み込み時間をテストするためのツールを構築しようとしています。ロード部分に python requestsモジュールを使用することを考えました。

問題は、完全な応答を取得するのにかかった時間を測定する機能が組み込まれていないことです。timeitこのために、モジュールを使用すると思いました。

私が確信していないのは、 timeit を次のように実行すると、次のようになるということです。

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

私は本当に応答が到着するのにかかった時間を測定していますか、それとも要求が構築、送信、受信などにかかる時間ですか? 非常に長い遅延(〜700ミリ秒)でネットワークをテストしているので、その実行時間を無視できると思いますか?

プログラムでこれを行うより良い方法はありますか?

4

3 に答える 3

186

最新バージョンのリクエストには次のような機能があります。

https://requests.readthedocs.io/en/latest/api/?highlight=elapsed#requests.Response.elapsed

例えば:

requests.get("http://127.0.0.1").elapsed.total_seconds()
于 2014-01-09T10:37:02.100 に答える
35

あなたの質問に関しては、それは合計時間でなければなりません

  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
于 2012-06-22T15:54:54.817 に答える