Socketio
This page contains the API documentation for the gradual.runners.request.SocketIO module.
gradual.runners.request.SocketIO
The SocketIO module provides the SocketRequest class which implements WebSocket-based API requests for stress testing. It supports WebSocket connections, message sending, and response tracking.
Classes
SocketRequest(scenario_name: str, run_once: bool, iterator: RequestIterator)
Bases: _Request
Implementation of WebSocket-based API requests for stress testing.
This class provides functionality for: 1. Establishing and managing WebSocket connections 2. Sending messages through WebSocket 3. Receiving and processing responses 4. Tracking connection and message timing 5. Handling connection errors and failures
Note
The class uses caching for WebSocket connections to improve performance and reduce connection overhead.
Source code in src/gradual/runners/request/base.py
Functions
on_request_completion(request_type: RequestConfig, response: tuple, response_time, start_time, end_time, params)
Handle WebSocket request completion and record statistics.
This method is called after each WebSocket interaction completes to: 1. Collect response data and timing information 2. Record statistics for analysis 3. Log debug information
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request_type
|
RequestConfig
|
Configuration for this request |
required |
response
|
tuple
|
Tuple containing (status_code, response_message) |
required |
response_time
|
Time taken for the interaction in nanoseconds |
required | |
start_time
|
Start time of the interaction in nanoseconds |
required | |
end_time
|
End time of the interaction in nanoseconds |
required | |
params
|
dict
|
Parameters used in the message |
required |
Source code in src/gradual/runners/request/SocketIO.py
create_ws_connection(url)
cached
Create a WebSocket connection to the specified URL.
This method is cached to reuse connections and improve performance. It handles connection errors and provides detailed error logging.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
WebSocket server URL to connect to |
required |
Returns:
| Name | Type | Description |
|---|---|---|
WebSocket |
Established WebSocket connection |
Raises:
| Type | Description |
|---|---|
Exception
|
If connection fails, with detailed error information |
Source code in src/gradual/runners/request/SocketIO.py
run()
Execute the WebSocket request in a loop until stopped.
This method: 1. Establishes WebSocket connections 2. Sends messages in a loop until stop_request is True 3. Receives and processes responses 4. Tracks timing and response data 5. Handles connection errors and failures 6. Closes connections when done
Note
The method will exit after a single interaction if run_once is True. It handles both successful and failed message sending/receiving scenarios.