curl 请求获取响应时间
前几天对接一个第三方的接口,通过查看日志发现从请求到响应加来花了20几秒,截图给对方,对方自己用 postman 测试响应测试是几十毫秒。就这样,我们说他们接口有问题,他们说自己接口没问题,进入了死结。因为是在我代码层发送的请求,所以别人会说是我自己的代码效率问题,为了给出证据,通过查找资料,使用 curl 来请求对方的 webservice 接口来查看响应时间,如果直接在命令行 curl 请求打印的响应时间很慢,我们就可以怼对方了。
新建一个 format.txt 文件,内容如下:
\n time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n 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
新建文件存储 webservice 请求体,文件为 test.xml
请求命令:curl -w "@format.txt" --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:" --data @test.xml http://xxx/xxWebService.asmx
结果如下:
也可以测试其他 http 请求
如果不关注返回结果,可以添加参数 -o /dev/null
参数解析
time_namelookup :解析 dns 时间
time_connect:发起请求,到TCP 请求建立握手时间
time_appconnect:SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
time_redirect : 从开始到最后一个请求事务的时间
time_pretransfer:从请求开始到响应开始传输的时间
time_starttransfer:从请求开始到第一个字节将要传输的时间
time_total :这次请求花费的全部时间结果
通过该方式测试出对方接口请求到响应在 7 秒左右,但是第二次请求就非常快了,不知道对方是不是做了什么缓存,但对方坚决说没有、、、
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: