It’s apparent that the usage of Websocket has expanded greatly in recent years, and its reliability is expected to be high since it mostly carries crucial information to clients. Hence, testing their durability and reliability has become more important. It is possible to execute performance tests on Websockets with Apache JMeter by using “Websocket Samplers” plugin developed by Peter Doornbosch.

Websocket Samplers Plugin

Let’s take a look at the plugin first. You can find the plugin here.

Once you install the plugin, you will get 7 new Sampler elements:

  • Websocket Close

Closes the current Websocket connection

  • Websocket Open Connection

Initiates a new connection with given parameters, with options for connection&read timeouts

  • Websocket Ping/Pong

Performs a ping or ping/pong service for the current connection

  • Websocket Sampler

         A single sampler that performs one-time request.

  • Websocket Single Read Sampler

Reads response without sending a request.

  • Websocket Single Write Sampler

Sends a request without reading the response

  • Websocket request-response Sampler

Does both sending a request and reading response

I want to find the right testing type for my product

I want QA experts to test my application

I’m looking for a long-term testing partner   

I want to consult a QA Specialist   

The Script

Websockets’ behavior may reveal differences between each other, but the structure of a script for Websocket is usually similar to the following format:

  • Initiating a connection with Websocket
  • Sending the first request
  • Receiving the first request
  • Using a looper (Runtime controller or Loop Controller etc.) to continue the data transmission between the client and the server by sending a message and receiving it.

-First, we need to start a connection with the Websocket. It can be done either using “Websocket Open Connection”, or “Websocket Request” with the “setup new connection” option.

-The information about the sockets needs to be given. For example, you can find the socket’s information from Google Chrome’s Inspect mode>Network>WS

websocket

  • There is one another situation that requires a token that is received by another request for a Websocket to initiate a connection.

websocket

-When the connection has started, there will be a series of messages that will be transferred from both the client and the server-side. Some of the requests going from the client might be unique, but at some point, repetitive pattern requests can be seen and it will be imitated with a loop logic. Additionally, this repetitive pattern usually has a constant interval between requests, which might need to be taken into account.

websocket

Keep reading the blogs of high performing load testing tool Loadium, to keep up with the latest news about Apache JMeter.