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