이번 프로젝트에서 부하 테스트를 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 |
---|