Jmeter를 활용한 Websocket 성능테스트
Jmeter 설정
JMeter는 Apache 소프트웨어 재단에서 개발한 오픈 소스의 Java 기반의 성능 테스트 도구입니다. 주로 웹 응용 프로그램의 성능을 측정하고 부하 테스트를 수행하는 데 사용됩니다
brew 명령어를 이용해 jmeter를 간단하게 설치 할 수 있습니다.
1
brew install jmeter
설치가 완료되었으면 해당 명령어를 이용해 Jmeter를 실행해줍니다.
1
open /opt/homebrew/opt/jmeter/bin/jmeter
그러면 아래와 같은 화면이 뜨면서 실행됩니다.
Jmeter Websocket 테스트
Jmeter에서 Websocket 테스트를 하기 위해서는 websocket plugin을 다운받아야 합니다.
JMeter 상단의 options 탭 -> Plugins Manager를 클릭하고,
Plugin Manager에서 상단의 Available Plugins 탭을 클릭 하여 WebSocket Sampler by Peter Doornbosch를 설치하면 됩니다.
테스트 순서를 알아보겠습니다.
- 먼저 Thread Group을 추가해서 유저를 몇명 테스트 할 건지 정합니다.
- Thread Group > Add > Sampler > WebSocket Open Connection 을 만들어서 웹소켓 연동할 서버 주소를 넣습니다.
- Websocket Open Connection > Add > Config Element > HTTP Header Manager 을 만들어서 토큰을 넣어줍니다.
- Thread Group > Add > Sampler > WebSocket Single Write Sampler 에서 연동된 웹소켓으로 Data를 보냅니다.
웹소켓 연결
Header에 Authorization Token 추가
메세지 전송
연동된 웹소켓으로 전송하고 싶은 메세지를 전송합니다.
csv를 활용하여 변수에 넣어 사용하는법
값을 넣어야할게 많을 경우에는 CSV Data Set Config 를 활용해서 csv를 넣어서 값을 가져올 수 있습니다.
열별로 네이밍을 나눌때에는 ,
를 사용하여 구분하면 됩니다.
이전요청 응답값을 변수에 넣어 사용하는법
응답값이 아래와 같이 들어올 때 JSON Extractor를 사용하여 data.token
을 가져와 변수에 넣을 수 있습니다.
1
2
3
"data": {
"token": "jqhudoajoidfaidoa"
}
아래와 같이 JSON Extractor 를 사용하면 token 변수에 응답값을 넣을 수 있어 다른곳에서도 사용 가능합니다.
이전 요청 응답값으로 나온 data.token 값을 token으로 넣을 수 있고 csv에서 가져온 값도 다음 요청에서 활용할 수 있습니다.
Tip.
- Loop Controller를 사용하면 특정 구간만 반복 호출할 수 있습니다.
- Constant Timer를 사용하면 요청할 때 딜레이를 줄 수 있습니다.
- View Result Tree를 사용하면 request response를 확인할 수 있습니다.
- Graph Result를 사용하면 요청에 대한 그래프를 보여줍니다.
- Summary Report를 사용하면 결과 요약을 보여줍니다.