Locust 压测socket接口样例

发布时间 2023-07-30 15:30:29作者: 术科术

import socket
from locust import User, task, between, constant

class SocketUser(User):
# 初始化,建立Socket连接
def on_start(self):
self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.client.connect(('localhost', 8080)) # 替换为目标Socket服务器的地址和端口

# 结束测试,关闭Socket连接
def on_stop(self):
    self.client.close()

# 编写自定义的发送和接收数据的方法
def send_and_receive(self, data):
    self.client.sendall(data.encode())
    response = self.client.recv(1024).decode()
    return response

# 定义一个任务,模拟发送数据并接收响应
@task
def test_socket_api(self):
    request_data = "Your Socket Request Data"  # 替换为实际的请求数据
    response = self.send_and_receive(request_data)
    # 在此可以根据响应进行断言、处理等操作,根据需求自行扩展

设置性能参数

class SocketUser(SocketUser):
wait_time = constant(0) # 每个任务之间不等待(可以根据需要调整)

运行命令:locust -f your_script_name.py --host=http://your_socket_server

然后访问 http://localhost:8089 进行测试