BackEnd/Node.js

[Node.js] Node.js 부하 테스트 툴 autocannon

guineaa 2025. 2. 15. 14:54

이번 프로젝트에서 부하 테스트를 Autocannon으로 사용하게 되었다

autocannon은 Javascript으로 만들어진 HTTP API 부하 테스트 툴 이라고 한다.

https://www.npmjs.com/package/autocannon

1. Autocannon 설치

npm install -g autocannon 

전역으로 autocannon을 설치한다

2. 테스트할 API 엔드포인트 준비

자기가 구현한 API와,

요청 헤더에 넣을 값 (Authorization: Bearer <user_token>, Content-Type: applicatoin/json..)도 준비하자.

3. autocaanon의 명령어 구성

기본적인 옵션으로는

-c : concurrent connections, 동시 연결

e.g.) -c 100 -> 동시에 100개의 연결로 테스트 진행

 

-d: duration, 테스트 지속 시간 (초단위)

e.g.) -d 30 -> 30초 동안 테스트 실행

 

-H: 요청 헤더 추가. 여러 개의 헤더 필요 시 이 옵션을 반복해 사용

 

4. 사용 예시

autocannon -c 100 -d 30 \
	-H "Authorization: Bearer <토큰값>" \
    -H "Content-Type: application/json \
    "http://localhost:3000/api/v1/certifications/search?query=컴&category=전산"

-c 100: 100개의 동시 연결로 API에 요청을 보내고,

-d 30: 30초 동안 부하 테스트를 진행한다

-H: 요청 시 인증 토큰을 헤더에 포함, 요청 본문의 데이터 타입을 JSON으로 지정

- 마지막으로 테스트할 API의 URL

 

전체 요청의 Latency 중앙값은 153ms으로, 절반의 요청은 153ms 이하의 지연 시간을 보였다.

거의 대부분 99%의 요청은 239ms의 지연 시간을 보였으며 평균 요청 지연 시간은 158.73ms이다.

표준편차가 19.45ms로 낮아 비교적 안정적인 응답 속도 유지하고 있다.

 

Req/Sec (초당 요청 수), Bytes/Sec (초당 전송 데이터 량)

절반의 샘플에서 초당 609개의 요청이 처리되었고

평균적으로 초당 628.64개의 요청을 처리할 수 있다. 표준편차는 56.61

평균적으로 173kB의 데이터를 전송할 수 있고 변동 폭은 15.5KB이다.

 

30초 동안 19000개의 요청과 5.19MB의 데이터를 처리했음을 알 수 있다.

 

 

 

'BackEnd > Node.js' 카테고리의 다른 글

[UMC] 7기 회고 - Node.js 파트  (0) 2025.02.27