curl 請求獲取響應時間

雪花飄發表於2020-11-17

前幾天對接一個第三方的介面,通過檢視日誌發現從請求到響應加來花了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 協議》,轉載必須註明作者和本文連結
雪花飄

相關文章