1. ホーム
  2. curl

[解決済み] cURLを使用して、リクエスト時間とレスポンス時間を一度に測定するにはどうすればよいですか?

2022-02-17 03:20:45

質問内容

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

リクエスト時間、レスポンス時間、合計時間を cURL .

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

curl -X POST -d @file server:port

で計測しており、現在は time というコマンドをLinuxで実行します。

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

timeコマンドは 合計 とはいえ、これは私が求めているものとはまったく違うのですが。

を使用して、リクエストとレスポンスタイムを測定する方法はありますか? cURL ?

解決方法は?

この素晴らしいブログ記事から... 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 にリダイレクトします。
-s プログレスメーターを表示しないようにcURLに指示する
"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.exeと同じフォルダ内)に以下のコマンドを記述します。

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

そうすれば、単純に...を呼び出すことができます。

curltime wordpress.org