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
    结果如下:

curl 请求获取响应时间

也可以测试其他 http 请求

curl 请求获取响应时间
如果不关注返回结果,可以添加参数 -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 协议》,转载必须注明作者和本文链接
雪花飘
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。