By default Jmeter does not provide websocket sampler, however you can download the external binaries and use them with Jmeter to do websocket testing
Step 1: Download the following dependent binaries and place them in Jmeter\lib\ext folder.
- jetty-http-9.1.1.v20140108.jar
- jetty-io-9.1.1.v20140108.jar
- jetty-util-9.1.1.v20140108.jar
- websocket-api-9.1.1.v20140108.jar
- websocket-client-9.1.1.v20140108.jar
- websocket-common-9.1.1.v20140108.jar
Step 2 Download Jmeter websocket sampler jar file and place it in Jmeter\lib\ext. You can download the latest version from https://github.com/maciejzaleski/JMeter-WebSocketSampler/releases
- If your Jmeter is already opened then close it and start again.
- You will see a new sampler “WebSocket Sampler” in sampler list.
- You can add websocket sampler into your test plan and write your script.
Following check following websocket sampler configuration options:
- Server Name or IP – your WebSocket server name or IP for example: websocket.org
- Port Number –Port that WebSocket server listens to. By default it is 80.
- Timeout:
- Connection – maximum time in milliseconds for setting up a connection. Sampler fails if it takes longer time as specified in connection.
- Response – maximum time in milliseconds it will wait for response message
- Implementation – Only latest version RFC6455(v13) option is available
- Protocol – Use to define WebSocket protocol to be used. “ws” prefix identifies the WebSocket connection and “wss” prefix identifies the WebSocket Secure connection
- Streaming Connection – if selected then streaming connection will remain open and will be reused by subsequent requests otherwise the connection will be closed after the first response
- Request Data – Used to define outgoing messages
- Response Pattern – Sampler will wait for a response to contain the pattern defined until defined response timeout occurs
- Message Backlog – Defines maximum count of response messages to keep
You can use http://www.websocket.org/echo.html for practice session. It use ws://echo.websocket.org server which responds back to client with the same message it received.