当前位置: 首页 > news >正文

iis配置网站加强档案网站建设

iis配置网站,加强档案网站建设,常州公司建站模板,石排仿做网站Max.Bai 2024.10 0. 背景 Locust 是性能测试工具#xff0c;但是默认只支持http协议#xff0c;就是默认只有http的client#xff0c;需要其他协议的测试必须自己扩展对于的client#xff0c;比如下面的WebSocket client。 1. WebSocket test Client “”“ Max.Bai W…Max.Bai 2024.10 0. 背景 Locust 是性能测试工具但是默认只支持http协议就是默认只有http的client需要其他协议的测试必须自己扩展对于的client比如下面的WebSocket client。 1. WebSocket test Client “”“ Max.Bai Websocket Client ”“” import json import logging import secrets import threading import time from typing import Callable, Optionalimport websocket from locust import eventslogger logging.getLogger(__name__)class WebSocketClient:def __init__(self, host: str, log_messages: bool False):self._host: str hostself._id: str secrets.token_hex(8)self._alias: Optional[str] Noneself._ws: Optional[websocket.WebSocketApp] Noneself.log_messages log_messagesself.count_recv_type Falseself.heartbeat_auto_respond Falseself._recv_messages: list []self.messages: list []self._sent_messages: list []def __enter__(self):self.connect()return selfdef __exit__(self, type, value, traceback):self.disconnect()propertydef tag(self) - str:tag f{self._host} {self._id}if self._alias:tag f({self._alias})return tagdef connect(self, alias: Optional[str] None, headers: Optional[dict] None, on_message: Optional[Callable] None):if not self._ws:self._alias aliasself._ws websocket.WebSocketApp(urlself._host,headerheaders,on_openself._on_open,on_messageon_message if on_message else self._on_message,on_closeself._on_close,)thread threading.Thread(targetself._ws.run_forever)thread.daemon Truethread.start()time.sleep(3)else:logger.warning(An active WebSocket connection is already established.)def is_connected(self) - bool:return self._ws is not Nonedef disconnect(self):if self._ws:self._ws.close()self._alias Noneelse:logger.warning(No active WebSocket connection established.)def _on_open(self, ws):logger.debug(f[WebSocket] {self.tag} connected.)events.request.fire(request_typews_client,nameconnect,response_time0,response_length0,)def _on_message(self, ws, message):recv_time time.time()recv_time_ms int(recv_time * 1000)recv_time_ns int(recv_time * 1000000)logger.debug(f[WebSocket] {self.tag} message received: {message})if self.log_messages:self._recv_messages.append(message)self.messages.append(message)# public/respond-heartbeatif self.heartbeat_auto_respond:if public/heartbeat in message:self.send(message.replace(public/heartbeat, public/respond-heartbeat))if self.count_recv_type:try:msg json.loads(message)id str(msg.get(id, 0))if len(id) 13:resp_time recv_time_ms - int(id)elif len(id) 16:resp_time (recv_time_ns - int(id)) / 1000elif len(id) 13:resp_time recv_time_ms - int(id[:13])else:resp_time 0method msg.get(method, unknown)code msg.get(code, unknown)error msg.get(message, unknown)# send_time int(msg.get(nonce, 0))if method in [public/heartbeat, private/set-cancel-on-disconnect]:events.request.fire(request_typews_client,namefrecv {method},response_time0,response_lengthlen(msg),)elif code 0:events.request.fire(request_typews_client,namefrecv {method} {code},# response_timerecv_time - send_time,response_timeresp_time,response_lengthlen(msg),)else:events.request.fire(request_typews_client,namefrecv {method} {code},response_timeresp_time,response_lengthlen(msg),exceptionerror,)except Exception as e:events.request.fire(request_typews_client,namerecv error,response_time0,response_lengthlen(msg),exceptionstr(e),)def _on_close(self, ws, close_status_code, close_msg):logger.debug(f[WebSocket] {self.tag} closed.)self._ws Noneevents.request.fire(request_typews_client,nameclose,response_time0,response_length0,)def set_on_message(self, on_message: Callable):self._ws.on_message on_messagedef send(self, message: str):if self._ws:self._ws.send(datamessage)if self.log_messages:self._sent_messages.append(message)logger.debug(f[WebSocket] {self.tag} message sent: {message})else:logger.warning(fNo active [WebSocket] {self.tag} connection established.)raise ConnectionError(No active [WebSocket] connection established.)def clear(self):self._recv_messages []self._sent_messages []self.messages []def expect_messages(self,matcher: Callable[..., bool],count: int 1,timeout: int 10,interval: int 1,) - list:Expect to receive one or more filtered messages.Args:matcher (Callable): A matcher function used to filter the received messages.count (int, optional): Number of messages to be expected before timeout. Defaults to 1.timeout (int, optional): Timeout in seconds. Defaults to 10.interval (int, optional): Interval in seconds. Defaults to 1.Returns:list: A list of messages filtered by the matcher.deadline: float time.time() timeoutresult: list [] # messages filtered by the matcherseen: list [] # messages already seen by the matcher to be excluded from further matchingwhile time.time() deadline:snapshot: list [*self._recv_messages]for element in seen:if element in snapshot:snapshot.remove(element)result.extend(filter(matcher, snapshot))if len(result) count:breakseen.extend(snapshot)time.sleep(interval)if len(result) count:logger.warning(f({self.tag}) Expected to receive {count} messages, but received only {len(result)} messages.)return result2. 如何使用 class PrivateWsUser(User):def on_start(self):self.ws_clientWebSocketClient(wss://abc.pp.com/chat, log_messageTrue)self.ws_client.connect()taskdef send_hello()self.ws_client.send(hello world) 3. 扩展 可自行扩展on_message 方法上面的on_message 方法是json 格式的信息处理
http://www.dnsts.com.cn/news/5996.html

相关文章:

  • 常州做网站咨询零基础学平面设计怎么学
  • 手工制作网站请大学生做网站
  • 厦门市建设局网站摇号陕西省私募基金协会
  • 淘宝基地网站怎么做湖北中牛建设有限公司网站
  • 协会网站建设目的宣传册制作
  • 南京哪里做网站网站开发工作好吗
  • 做网站最便宜多少钱西直门网站建设
  • 商业网站建设案例课程视屏下载新品发布会主题大全
  • 安徽省经工建设集团公司网站微信支付开发者平台
  • 学做网站需要掌握哪些知识上海网站开发设计
  • wordpress 本地 搭建网站福州搜索优化公司
  • 电脑上怎样进入中国建设银行网站番禺网站建设公司哪家好
  • 铁哥们网站建设网站建站网站
  • 济南行知网网站建设中国做类似 esty的网站
  • 长沙网站优化价格网站建设太金手指六六三十
  • ppt做视频的模板下载网站有哪些专注网络营销推广公司
  • 公司自己的网站叫什么上海网站优化推广
  • 网站定制合同和模版的区别怎么做自己的发卡网站
  • 建设网站河北建设网用数据库做网站
  • 网站版权备案张家港网站建设优化
  • 建简单网站网站建设的三大原则
  • 网站推广优化外包公司网站建设消费调查问卷
  • 北京it公司排名seo优化是什么
  • 木樨园网站建设比较好设计网站
  • phpstudy怎样做多个网站如何在百度做推广
  • 郑州seo建站深圳响应式网站制作
  • 郧阳网站建设空间免费浏览量100
  • 请人做网站要多江苏网站建设价格低
  • 做个小网站 虚拟空间 买服务器济宁seo营销
  • 无锡装修网站wordpress下载类模板