개발자
JMeter로 Websocket 테스트를 구현해야 하는 상황인데 테스트 진행하는 도중 아래 에러가 나서 찾아보니 Single Write Sampler에 Data 인코딩 문제로 추측만 되고 있습니다... Failed to parse TextMessage payload=[SEND desti..], byteCount=242, last=true] in session ujvhyrid. Sending STOMP ERROR to client. org.springframework.messaging.simp.stomp.StompConversionException: Frame must be terminated with a null octet JMeter Sampler 인코딩 UTF-8로 설정하는건 찾아서 해봤는데 그래도 안되네요...ㅠㅠ 정말로 인코딩 문제인지 혹시 동일한 경험이 있으신 분이 계실까요? 구글링을 해도 자료를 못찾겠고.. 사내에 해당 지식을 가지신 분도 전무하셔서 너무 답답해서 질문남겨봅니다....
답변 1
해결 하셨을 것 같은데 혹시나 도움되실까 글 적어봅니다 STOMP 프로토콜 사용 중이신가요? 프레임 바디의 마지막에 NULL octet을 넣어서 끝을 알려줘야 하는 걸로 알고 있습니다. (참고로 NULL octet은 종종 문자열이나 데이터의 끝을 표시하는데 사용될 수 있다고 합니다) JMeter에서 SEND 요청을 보내는 데이터 마지막에 NULL octet을 넣어보세요 저도 websocket을 사용하고 jmeter를 이용해 성능테스트를 해보고 있는데 null octet을 제외하니 똑같은 오류가 나오네요^^ STOMP 공식문서를 참고했습니다만 정확한 답변이 아닐 수 있습니다. https://stomp.github.io/stomp-specification-1.2.html#Augmented_BNF
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 03월 15일
스프링의 Stomp는 프레임의 끝을 null octet로 확인합니다. 해당 에러 메시지는 아마도 해당 요구사항이 충족되지 않아 발생한 것 같습니다. JMeter의 WebSocket 플러그인으로 테스트를 진행하고 있다면, 프레임 종료 부분에 null octet가 추가되었는지 확인해 보세요. 또한, 일부 WebSocket 서버는 텍스트 메시지만 처리하기 때문에 이 경우 바이너리 메시지를 보내려고 하면 문제가 발생할 수 있습니다. 이런 경우에는 서버가 어떤 메시지 형식을 지원하는지 확인하고 테스트 설정을 조정해야 합니다. 마지막으로, STOMP 메시지 자체에 오류가 있는 것일 수 있으므로 실제 송신하는 데이터를 잘 살펴보셔야 합니다. 예를 들어, 헤더와 본문 사이에 공백 라인이 필요할 수 있습니다. 해당 방법을 시도해보았음에도 문제 해결이 되지 않으신다면 여전히 인코딩 문제일 수도 있습니다. 다양한 인코딩을 시도해 보거나 STOMP 클라이언트 라이브러리 등을 사용하여 접근하는 것도 하나의 방법입니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!