본문 바로가기

성능테스트/Loadrunner

[ Loadrunner ] Loadrunner websocket 프로토콜 스크립트 작성시 주의 사항

반응형

06customer.alz
2.07MB

 

 

0. 참고 url

https://www.linkedin.com/pulse/how-work-websockets-using-loadrunner-ajit-lal

 

How to Work on WebSocket’s using LoadRunner:

WebSockets protocol is a way to exchange data b/w client and server using the persistent connection, ws/wss over TCP line. WebSockets play a critical role in enhancing faster exchange of BULK data b/w client and server as it works on full duplex mode and i

www.linkedin.com

1. websocket 스크립트의 식별

그냥 web으로 스크립트 레코딩을 했을때 그림1 과 같이 Extra Files에 WebSocketBuffer.h와 WebSocketCB.C파일이 생성되어 있으면 websocket프로토콜을 쓴다고 볼 수 있음. 단 레코딩 시 그림2와 같이 "Generates steps for WebSocket traffic"이(Default) 선택 되어 있어야 레코딩이 된다.

 

그림1)

그림2)

2. WebSocketBuffer.h

Websocket프로토콜일때 제2의 Generation log라고 보면됨. websocket프로토콜로 통신된 부분은 generation로그에 없고 해당 파일에 변수형태로 저장되어 있음. 코릴처리할때 generation로그에 없으면 해당부분을 뒤지면 됨. 해당변수들이 실제 사용되는 것은 아니고 그냥 보는 용도로 보임.

그림 3)

 

3. WebSocketCB.C

OnOpenCB0, OnMessageCB0, OnErrorCB0, OnCloseCB0 4개의 함수가 정의되어있으며 설명은 Function Reference참고.. 해당 함수들의 주석을 모두 풀어주면 replay했을때 websocket으로 receive하는 내용들이 replay log에 찍힌다.

그림4) 

4. Colleration 처리

websocket으로 받은 내역에 대해 correlation처리 시 receive받는 위치가 수행시 마다 달라짐. 특정 내용이 그림 5의 경우로 보면 WebViewRead.ashx_4에서 받기도 하고 WebViewRead.ashx_5에서 받기도 하고 WebViewRead.ashx_6에서 받기도 함. 혹시나 해서 web_websocket_connect앞에 web_reg_save_param을 선언 했더니 알아서 하단에 받는 위치에서 변수로 저장됨. 해당부분에 대한 설명을 찾아보려 했으나 못찾음.

 

그림 5) 

 

5. 특이사항

보통 X-XSRF-TOKEN이 적용된 경우 Correlation처리만으로 해결되는데 websocket사용시 X-XSRF-TOKEN에 대한 correlation처리를 모두 해줘도 websocket으로 receive받는 부분에서 메세지가 정확히 기억이 안나는데 "이 브라우져 버젼으로 처리 할 수 없습니다?"같은 메세지가 발생하였음. 스크립트 상에서 해결할 수 있는 부분이 없어 X-XSRF-TOKEN을 해제 요청후 테스트하니 스크립트가 정상 수행되었음. 정확한 이유를 아시는 분은 알려주세요...

 

 

반응형