curl常见用法以及查看响应时间

shell 脚本

#!/bin/bash

startTime=`date +%Y%m%d-%H:%M:%S`
startTimelog=`date +%Y%m%d%H%M%S`
startTime_s=`date +%s`

set -B                  # enable brace expansion # 15 minute 100qps test,set loop to 90000
for i in {1..10}; do
echo cainiao ruoute begin test $i
  curl -w "@curl-format.txt" -o /dev/null -s -L  --location --request POST 'https://x5edi-sh-dr.fwx-network.com/caiNiaoInvoke/route/query' \
--header 'appKey: b09d8afde0be0b7de995666112a69528' \
--header 'sign: N8dku+dCkvykEeAWgjCLkQ==' \
--header 'timestamp: 1471924244823' \
--header 'v: 1.0' \
--header 'format: json' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'logistic_provider_id=12' \
--data-urlencode 'data_digest=N8dku+dCkvykEeAWgjCLkQ==' \
--data-urlencode 'logistics_interface={"uniqueCode":"CAINIAOTESTPRESS001","queryList":[{"branchCode":"571009004","sellerId":"408834084","receiveAddress":{"provName":"山东省","cityName":"烟台市","areaName":"蓬莱市","detailAddress":"蓬莱阁街道南关路306号绿城售楼处工程部"},"objectId":"2738189664489774732","sendAddress":{"provName":"浙江省","cityName":"杭州市","areaName":"江干区","detailAddress":"下沙街道万亚.金沙湖1号2幢1602室"}}]}' >> caiNiaoInvoke_${startTimelog}.log

sleep 0.01

done

endTime=`date +%Y%m%d-%H:%M:%S`
endTime_s=`date +%s`
sumTime=$[ $endTime_s - $startTime_s ]
 
echo "$startTime ---> $endTime" "Total:$sumTime seconds" >> caiNiaoInvoke_${startTimelog}.log 

 

curl命令查看请求响应时间

-o:把curl 返回的html、js 写到垃圾回收站[ /dev/null] 

-s:去掉所有状态

-w:按照后面的格式写出rt

time_namelookup:DNS 解析域名www.36nu.com的时间 

time_commect:client和server端建立TCP 连接的时间

time_starttransfer:从client发出请求;到web的server 响应第一个字节的时间

time_total:client发出请求;到web的server发送会所有的相应数据的时间

speed_download:下周速度  单位 byte/s

上面这条命令及返回结果可以这么理解:
0.014: DNS 服务器解析www.36nu.com 的时间单位是s   
0.015: client发出请求,到c/s 建立TCP 的时间;里面包括DNS解析的时间  
0.018: client发出请求;到s响应发出第一个字节开始的时间;包括前面的2个时间  
0.019: client发出请求;到s把响应的数据全部发送给client;并关闭connect的时间  
1516256.00 :下载数据的速度 

 

cat curl-format.txt
解析时长                            time_namelookup:  %{time_namelookup}\n
建立tcp时长                            time_connect:  %{time_connect}\n
SSL/SSH 等上层协议建立连接的时间    time_appconnect:  %{time_appconnect}\n
从开始到最后一个请求事务的时间        time_redirect:  %{time_redirect}\n
从请求开始到响应开始传输的时间     time_pretransfer:  %{time_pretransfer}\n
客户端到服务器时长               time_starttransfer:  %{time_starttransfer}\n

从开始到结束时长                         time_total:  %{time_total}\n
--------------------------------------------------------------------------------\n

 

posted @ 2022-10-12 16:41  谢端阳  阅读(285)  评论(0编辑  收藏  举报