현재 WebSocket STOMP를 사용하여 실시간 채팅을 구현하였다.
이후, 채팅 서비스의 성능을 높이기 위해 Jmeter를 사용해서 부하 테스트를 해보기로 결정했다.
임시로 설정해둔 스레드 그룹은 다음과 같다.
전체적인 테스트 플로우이다. 커넥션이 성공하면, 구독을 하고 채팅방에 입장함과 채팅을 보내고 보냈던 메시지를 받으면 성공이다.
연결 되었다는 응답이 다음과 같이 와야한다.
구독을 했었으니, 보냈던 메시지가 잘 도착 한 것을 볼 수 있다.
메시지를 보내는데 무려 207ms가 걸렸다..! 개선해야할 필요가 있어 보인다.
counter 설정을 해서 웹 소켓 경로를 다음과 같이 작성해줘야 한다. 아니면 서버에서 보낸 응답을 받지 못하는 Read TimeOut 오류가 난다.(이걸로 몇일을 고생했다..)
/ws/{__RandomString(8,abcdefghijklmnopqrstuvwxyz,sessionId)}/websocket
SEND MESSAGE에서 json 형식을 보낼때, 다음과 같은 형식으로 보내줘야 한다. 그렇지 않으면 JSON parse error: Unexpected character (‘r’ (code 114)): was expecting comma to separate Object entries
과 같이 서버단에서 메시지를 파싱해오지 못하는 문제가 발생한다.
["SEND\ndestination:/pub/chat/message\ncontent-type:application/json\n\n{\"roomId\":1,\"data\":\"hihi\",\"type\":\"CHAT\",\"sender\":\"semi\"}\n\u0000"]
참고 자료
https://hyunminh.github.io/chatting-response-upgrade/
https://forum.katalon.com/t/json-parse-error-unexpected-character-n-code-110-was-expecting-comma-to-separate-object-entries/37035/8