Websocket load testing using Jmeter

Posted by: admin September 19, 2023 No Comments


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

  1. If your Jmeter is already opened then close it and start again.
  2. You will see a new sampler “WebSocket Sampler” in sampler list.
  3. 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.

Leave a Reply