インターネット接続の遅延、より具体的にはWebサイトの読み込み時間をテストするためのツールを構築しようとしています。ロード部分にpython requests モジュールを使用することを考えました。
問題は、完全な応答を得るのにかかった時間を測定する組み込み機能がないことです。このために、私はtimeit
モジュールを使用すると思いました。
私が知らないのは、timeitを次のように実行した場合です:
t = timeit.Timer("requests.get('http://www.google.com')", "import requests")
応答が到着するまでにかかった時間を実際に測定していますか、それともリクエストの作成、送信、受信などにかかる時間ですか?非常に長い遅延(約700ミリ秒)でネットワークをテストしているので、おそらくその実行時間を無視できると思いますか?
これをプログラムで行うより良い方法はありますか?
あなたの質問に関しては、それはのための合計時間でなければなりません
単一のリクエストのロード時間を測定する他の方法は、urllibを使用することです:
nf = urllib.urlopen(url)
start = time.time()
page = nf.read()
end = time.time()
nf.close()
# end - start gives you the page load time
リクエストの最新バージョンにはそのような機能があります。
http://docs.python-requests.org/en/latest/api/?highlight=elapsed#requests.Response.elapsed
例えば:
requests.get("http://127.0.0.1").elapsed.total_seconds()