Tools

cURL HTTP 요청 속도 측정

구티맨 2020. 11. 30. 11:00

보통 로컬 PC에 있는 Postman 을 사용해서 HTTP 요청을 보내고, 속도가 얼마나 나오고 응답 크기가 얼만지 확인을 하는데

 

피치 못하게 보안상 이유로 방화벽 때문에 Postman 을 사용하지 못하는 경우가 있어

 

cURL 로 요청을 보내고, 응답을 파일에 저장 및 응답 속도를 출력하는 방법을 알아보겠습니다.

 

아래에 요청과 응답의 예제가 있습니다.

$ sudo curl -w "@curl-format.txt" -o response.json -XGET 'host:port/api'

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  118k    0  118k    0     0   199k      0 --:--:-- --:--:-- --:--:--  199k
time_namelookup:  0.000s
time_connect:  0.003s
time_appconnect:  0.000s
time_pretransfer:  0.003s
time_redirect:  0.000s
time_starttransfer:  0.587s
----------
time_total:  0.596s

 

-w 옵션은 요청을 완료하고 난 뒤에 무엇을 출력할지에 대한 포맷을 지정해 줄 수 있습니다.

 

-o 옵션은 stdout으로 결과를 출력하는 대신에, file에 출력하도록 해줍니다.

 

그래서 http 요청의 응답은 response.json에 저장을 하고,

 

응답 속도는 curl-format.txt 에 작성된 포맷대로 stdout에 출력을 해줍니다.

time_namelookup:  %{time_namelookup}s\n
time_connect:  %{time_connect}s\n
time_appconnect:  %{time_appconnect}s\n
time_pretransfer:  %{time_pretransfer}s\n
time_redirect:  %{time_redirect}s\n
time_starttransfer:  %{time_starttransfer}s\n
----------\n
time_total:  %{time_total}s\n

curl 요청에 걸리는 시간을 출력하기 위한 포맷(curl-format.txt)은 위와 같습니다.