Backend
Locust 기반 환경별 E2E 테스트 자동화
Locust로 환경별 E2E/부하 테스트를 자동화할 때 필요한 구조와 운영 규칙을 정리합니다.
Locust 기반 환경별 E2E 테스트 자동화
목적
Locust를 쓰는 이유는 "큰 부하"보다 "재현 가능한 시나리오"입니다. 환경별로 같은 시나리오를 돌려 회귀를 빨리 찾는 데 초점을 둡니다.
권장 분리
smoke: 배포 직후 핵심 기능 확인functional: CRUD/비즈니스 흐름 검증performance: 목표 TPS/latency 검증stress: 한계점 탐색
최소 구조
e2e/
config/{local,int,stage,prod}.yaml
suites/{smoke,functional,performance,stress}.py
locustfile.py
실행 예시
locust -f suites/smoke.py --headless -u 20 -r 5 -t 2m --host https://api-int.example.com
운영 규칙
- 시나리오 데이터는 테스트마다 독립 생성
- 테스트 종료 시 정리(cleanup) 보장
- CI에서 환경별 실행 시간 상한 설정
자주 하는 실수
- smoke와 performance를 구분하지 않아 CI가 느려짐
- 테스트 데이터 충돌로 flaky 발생
- 성공 기준(p95, 에러율) 없이 수치만 출력
요약
Locust 자동화의 핵심은 도구가 아니라 테스트 계층화입니다. smoke/functional/performance를 분리하면 빠른 검증과 깊은 검증을 동시에 가져갈 수 있습니다.