curlですぐにapiの時間を計測!
shellで複数回apiを叩いて平均的なレスポンスの時間を取得したいという場合に簡単に使えるスクリプトを書きましたENDPOINT
に計測したいapiのurlを書いて、実行するだけです。
実行回数とAPI method
, data
も変数内に記入することができるようにしています
$ vim response.sh # お好きなエディタで
...下記のコードを保存...
$ chmod 700 response.sh
$ ./response.sh
#!/bin/bash# 集計用TOTAL=0
# custom variables## curl設定ENDPOINT="https://xxxxxx/yyyyy"METHOD="POST"DATA='{"hoge": "fuga"}'## 回数COUNT=10
## 平均の計算で小数点以下何桁まで表示するかSCALE=10
for((c=1; c<=$COUNT; c++))do# curlでレスポンスにかかった時間を取得TIME=$(curl $ENDPOINT-X$METHOD-d$DATA-s-o /dev/null -w"%{time_starttransfer}\n")# 時間を標準出力に表示echo"time: $TIME [ms]"# 加算するTOTAL=`echo"$TOTAL + $TIME" | bc`done# 平均を計算AVG=`echo"scale=$SCALE; $TOTAL / $COUNT" | bc`# 結果出力echo"total: $TOTAL [ms]"echo"avarage: $AVG [ms]"