각 결과는 최대 구간만 작성
작성한 locustfile.py
from locust import HttpUser, task, between, TaskSet
class QuickstartUser(HttpUser):
wait_time = between(1, 5)
# 채팅방 접속 Task
@task
def chat_room(self):
self.client.get("/")
self.client.post("/members/login", json={"username":"gio", "password":"qqq111!!!"})
self.client.get("/chat/rooms")
self.client.get(url="/chat/messages?roomId=9e539b8c-ae10-4a54-8dae-6b5813d3a13d",
headers={"authorization": "Bearer " + "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJnaW8iLCJhdXRoIjoiUk9MRV9VU0VSIiwidXNlcm5hbWUiOiJnaW8iLCJleHAiOjE2NzY1NjU5MTh9.V5KyJ_PebhVyPGlsrpiRT6Zy2vJzJGqAQbzUAm8Yx30"})
# self.client.get("/main")
# self.client.get("/chat-list")
# self.client.get("/chat/9e539b8c-ae10-4a54-8dae-6b5813d3a13d?room_name=웅이&room_id=9e539b8c-ae10-4a54-8dae-6b5813d3a13d&member_Id=5&like=true")
# 짤 디테일 검색 Task
@task
def gif_detail(self):
self.client.get("/")
self.client.post("/members/login", json={"username":"gio", "password":"qqq111!!!"})
self.client.get("/gif/gif?gifId=7618")
# 프로필 확인 Task
@task
def gif_detail(self):
self.client.get("/")
self.client.post("/members/login", json={"username":"gio", "password":"qqq111!!!"})
self.client.get("/members?username=gio")
Test 1
Number of Users : 100
spawn rate : 1
Test 2
Number of Users : 200
spawn rate : 5
Test 3
Number of Users : 300
spawn rate : 5
위 세번의 실험으로
현 서버는 작성된 Task를 기준으로 RPS는 최대 65이며,
사용자가 많아져도 RPS는 최대치이므로 Response Time이 늘어나는 것을 알 수 있다.
아래는 Test3에서 수행된 Tasks들
현재까지의 Task의 특이사항으로는 Failure가 없다.
안정적인 서비스 제공을 위한 Response Time을 95 Percent line : 1000ms 이내라고 할 경우, 이를 만족시키는 최대 유저 수를 구하기 위한 테스트를 진행한다.
Test 4
Number of Users : 60
spawn rate : 1
Test 5
Number of Users : 70
spawn rate : 1
Test 6
Number of Users : 75
spawn rate : 1
총 6번의 실험으로 다음과 같은 결과를 얻을 수 있었다.