cURL を使用してリクエスト時間と応答時間を一度に測定するにはどうすればよいですか? 質問する

cURL を使用してリクエスト時間と応答時間を一度に測定するにはどうすればよいですか? 質問する

JSON 形式でデータを受信し、そのデータを処理して、結果を要求者に返す Web サービスがあります。

を使用して、リクエスト、レスポンス、合計時間を測定したいと思いますcURL

私のリクエストの例は次のようになります。

curl -X POST -d @file server:port

現在、私はtimeLinux のコマンドを使用してこれを測定しています:

time curl -X POST -d @file server:port

ただし、 time コマンドは合計時間のみを測定するので、私が探しているものとは少し異なります。

を使用してリクエスト時間と応答時間を測定する方法はありますかcURL?

ベストアンサー1

この素晴らしいブログ投稿から...https://blog.josephscott.org/2011/10/14/timing-details-with-curl/

cURLはリクエストの詳細をフォーマットされた出力でサポートしています(詳細についてはcURLのマニュアルページをご覧ください、 の下-w, –write-out <format>)。ここでは、提供されているタイミングの詳細にのみ焦点を当てます。以下の時間は単位です。

  1. 新しいファイルを作成しcurl-format.txt、以下を貼り付けます:

         time_namelookup:  %{time_namelookup}s\n
            time_connect:  %{time_connect}s\n
         time_appconnect:  %{time_appconnect}s\n
        time_pretransfer:  %{time_pretransfer}s\n
           time_redirect:  %{time_redirect}s\n
      time_starttransfer:  %{time_starttransfer}s\n
                         ----------\n
              time_total:  %{time_total}s\n
    
  2. リクエストする:

     curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"
    

    または、Windows の場合は...

     curl -w "@curl-format.txt" -o NUL -s "http://wordpress.com/"
    

これが何をするか:

-w "@curl-format.txt"cURLにフォーマットファイルを使用するように指示します
-o /dev/null。リクエストの出力を/dev/nullにリダイレクトします。cURLに
-s進捗メーターを表示しないように指示します
"http://wordpress.com/"。これは要求しているURLです。URLに「&」クエリ文字列パラメータがある場合は特に引用符を使用してください。


そして返されるものは次のとおりです:

   time_namelookup:  0.001s
      time_connect:  0.037s
   time_appconnect:  0.000s
  time_pretransfer:  0.037s
     time_redirect:  0.000s
time_starttransfer:  0.092s
                   ----------
        time_total:  0.164s

結果をマイクロ秒単位で出力するオプションはまだ見たことがありませんが、ご存知の場合は以下のコメント欄に投稿してください。


Linux/Mac ショートカット (エイリアス) を作成する

alias curltime="curl -w \"@$HOME/.curl-format.txt\" -o /dev/null -s "

その後は、単に電話をかけるだけです...

curltime wordpress.org

コメントをくれたPete Doyleさんに感謝します!


Linux/Mac のスタンドアロン スクリプトを作成する

.txtこのスクリプトでは、書式設定を格納するための別のファイルは必要ありません。

実行可能パスのどこかに新しいファイル を作成しcurltime、次の内容を貼り付けます。

#!/bin/bash

curl -w @- -o /dev/null -s "$@" <<'EOF'
    time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\n
EOF

次に、エイリアスと同じ方法で呼び出します。

curltime wordpress.org

Windows ショートカット (別名 BAT ファイル) を作成する

およびcurltime.batと同じフォルダーにという新しいテキスト ファイルを作成し、次の行を貼り付けます。curl.execurl-format.txt

curl -w "@%~dp0curl-format.txt" -o NUL -s %*

次に、コマンドラインから次のように呼び出すだけです。

curltime wordpress.org

PATH(どのフォルダーからでもコマンドを使用できるようにするには、フォルダーが Windows 変数にリストされていることを確認してください。)

おすすめ記事