안녕하세요. 미들웨어 입니다.
이번에 꽤 괜찮은 성능테스트 Tool 을 발견하게 되서 소개합니다.
당연히 오픈소스 이고, ngrinder 보다 사용하기 편리하네요.
1. Locust 소개 & 설치

2. Locust 설치방법
AWS EC2 내에 설치 후 테스트 했지만 Linux 에서 진행하셔도 동일합니다.
핵심은 python을 설치입니다.
| sudo yum install -y python3-devel sudo yum install -y libevent-devel sudo yum install -y gcc sudo python3 -m pip install locust |
3. locustfile.py 생성
샘플로 한 py파일에 3개의 task를 구성해봤습니다.
한 주소에 context 로 3개 호출하는 task 생성했다 보시면 될것 같아요
error.jsp 는 500 error 를 유발하는 jsp를 한개 만들어 둡니다.
파일생성 : locustfile.py
| from locust import HttpUser, task, between class QuickstartUser(HttpUser): wait_time = between(5, 9) @task(3) def my_task1(self): self.client.get("/index.jsp") @task(5) def my_task2(self): self.client.get("/session.jsp") @task(2) def my_task3(self): self.client.get("/error.jsp") |
4. start, stop 스크립트 생성
매번 콘솔창에 치기 귀찮아서.. start.sh 와 shutdown.sh 를 만들어 뒀습니다.
shutdown 은 kill 하는거니 상황에 맞게 변경해서 사용하세요.
기본 port 는 8089 을 사용했습니다.
| start.sh locust -f locustfile.py --host=http://localhost:8089 & stop.sh kill -9 `ps -ef | grep locust | awk '{print $2}'` |
5. Locust 테스트 방법
동시접속자수(Number of total users to simulate)
접속빈도수(Hatch rate)
ex) 1000명 사용자를 10초단위로 증가한다
- Number of total users to simulate : 1000
- Hatch rate : 10
- Host : http://호출할IP:port


6. Locust & Scouter 에 부하 입력 화면
실제 Locust 에 입력되는 client 와 scouter 에 들어오는 수가 거의 비슷합니다.
이정도면 아주 훌륭하네요.
=> Locust 1000명 부하발생

=> Scouter 1000명 유입화면

꽤 괜찮은 툴인것 같습니다.
'Apache Tomcat' 카테고리의 다른 글
| (오픈소스 활용-5) SpringBoot 의 장단점 및 소개 (1) | 2024.02.28 |
|---|---|
| (오픈소스 활용-4) Git가입 -> repogitory 생성 -> Git & Jenkins연동 -> Jenk… (1) | 2024.02.14 |
| (SSL-2) SSL 인증서 에러발생시 해결방법 (NSS error-8172, 12276 ??)미들웨어 0건 7,826회 1회 (0) | 2024.01.17 |
| (Cache-2) CDN 개념과 활용방법 정리 (1) | 2023.12.20 |
| (Cache-1) Nginx reverse proxy 로 Cache 기능활용 (1) | 2023.12.11 |