压测:Locust & WebSocket 二次开发
一、需求:
压测 WebSocket 接口性能。
二、问题:
Locust 仅封装了Http Client;压测使用 WebSocket,需二次开发
三、解决方案:学习Http Client
- DrawScript.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: DrawScript.py
Date: 2021/12/28
Author: allan
-------------------------------------------------
"""
import threading
from urllib.parse import urlencode
from locust import task
from api.DrawApi import DrawApi
from conf.server.ws_server import WS_ADDRESS
from lib.BaseRobot import BaseRobot
from lib.ws_client import WSClient
class Task(BaseRobot):
def __init__(self, parent):
super(Task, self).__init__(parent)
self.host = self.locust.host
self.user = DrawApi()
self.ws_client = WSClient(WS_ADDRESS, self.user)
def on_start(self):
"""抽奖"""
user_info = urlencode(self.user.user_id, encoding='utf8')
# 连接 WebSocket,并一直接受推送消息
self.ws_client.client_connection(data=user_info)
threading.Thread(target=self.ws_client.client_receive).start()
@task
def drawing(self):
for i in range(