因连接websocket业务逻辑是需要先登录,拿到token作为参数去请求,所以测试websocket协议也必须先使用登录接口,但是我又不想先全部登录一下拿到token保存起来,所以想http和websocket的压测一起处理。
这里是基于ws4py库连接websocket
先写基础的链接类:
from locust import TaskSet, task, between, Locust, events, HttpLocust
from ws4py.client.threadedclient import WebSocketClient
from ws4py.websocket import Heartbeat
from ws4py.client import ssl, HandshakeError
class Ws(WebSocketClient):
def __init__(self, url, token, start_time):
super(Ws, self).__init__(url)
self.token = token
self.start_time = start_time
def opened(self):
ms_9904 = json.dumps({
"c": 9904,
"data": {
"token": self.token
}
})
self.send(ms_9904)
def received_message(self, message):
if str(message) != "6":