import time
from locust import HttpUser, task, between
import json
import random
class QuickstartUser(HttpUser):
wait_time = between(3, 5)
# 닉네임 조회 Task
@task
def chat_room(self):
self.client.get("/")
self.client.post("/api/members/login", json={"username":"moon5@naver.com", "password":"ssafy123!"})
# 게임 생성 Task
@task
def game_create(self):
self.client.get("/")
self.client.post("/api/games/init", json={"theme":"COVID",
"turnPerTime":"DAY",
"startTime":0,
"totalTurn":10,
"memberIdList":[1]})
# 게임 진행 Task
@task
def game_progress(self):
list_index = random.randrange(0, len(game_room_list))
self.client.get("/")
self.client.post("/api/games/game", json={
"roomId" : "16cd5b51-789d-4723-80eb-b76b1e7a0dd1",
"gamerId" : 3021})
- 게임 진행 시 턴을 넘기지 않도록 설정하고, 부하테스트를 진행했다.
- 분산 저장을 위해 사용했던 hadoop, spark, zeppeline 등을 stop 시킨 후 진행했다.
AWS EC2 성능
결과
- RPS는 22
- 95% 4500ms되는 구간의 유저수는 99명
- 게임의 원활한 진행을 위한 시간이 5000ms라고 가정한다면, 최대 103명 까지 가능하다.