Locust 压测socket接口样例

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 进行测试

posted @ 2023-07-30 15:29  术科术  阅读(190)  评论(0)    收藏  举报