我应该如何使用蝗虫为WebSocket编写压力测试

时间:2019-07-09 09:26:33

标签: websocket stress-testing locust

1。我应该如何保持健康? 2.如何计算响应时间?

我根据在线博客改写了欲望

WebSocketClient(object)类:

def __init__(self, host):
    self.host = host
    self.ws = websocket.WebSocket()

def connect(self, burl, name):
    start_time = time.time()
    try:
        self.conn = self.ws.connect(url=burl)
    except websocket.WebSocketTimeoutException as e:
        total_time = int((time.time() - start_time) * 1000)
        events.request_failure.fire(request_type="websocket", name=name+"_error", response_time=total_time, exception=e)
        flag = False
        return flag
    else:
        total_time = int((time.time() - start_time) * 1000)
        events.request_success.fire(request_type="websocket", name=name+"_right", response_time=total_time, response_length=0)

    return self.conn

def recv(self):
    return self.ws.recv()

def send(self, msg):

    self.ws.send(msg)

def close(self):
    self.ws.close()

WebsocketLocust(Locust)类:

def __init__(self, *args, **kwargs):
    super(WebsocketLocust, self).__init__(*args, **kwargs)
    self.client = WebSocketClient(self.host)

SearchTest(TaskSet)类:

@task
def searchtest(self):
    self.url = 'wss://api.bbxapp.vip/v1/ifcontract/realTime'
    self.client.connect(self.url, name='chat_room')
    flag = True
    while flag:
        data ={"action":"ping"}
        data =json.dumps(data)
        self.client.send(data)
        globals = {'true': 0}
        recv = self.client.recv()
        recv=json.loads(recv)

        if recv["data"]== "pong":
            self.client.send(data)
        else:
            flag = False

名称#请求数#失败平均最小值最大值| req / s中位数

chat_room_right 1 0(0.00%)3089 3089 3089 | 3100 0.00

总计1 0(0.00%)0.00

平均时间太长,我认为“ total_time = int((time.time()-start_time)* 1000)”有一些错误。

请帮助我

0 个答案:

没有答案