안녕하세요. 미들웨어 입니다.

 

이번에 꽤 괜찮은 성능테스트 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초단위로 증가한다

 
=> 접속 후 부하 발생 조건 입력


 
=> Locust Chart 화면


 

 

6. Locust & Scouter 에 부하 입력 화면

실제 Locust 에 입력되는 client 와 scouter 에 들어오는 수가 거의 비슷합니다.

이정도면 아주 훌륭하네요.

 

=> Locust 1000명 부하발생



 

 

=> Scouter 1000명 유입화면


 

 

꽤 괜찮은 툴인것 같습니다.

+ Recent posts