30.JMeter测试WebSocket


目录

1、websocket的环境准备

2、jmeter调用websocket

3、websocket理解


1、websocket的环境准备

  • 可以用python起一个WebSocket服务

    • python运行websocket的代码很多,可以网上去找
# -*- coding:utf8 -*-
# ------------------------------------------------------
# ProjectName:           xxx_web1
# FileName:              ws1
# Author:                
# Description: 
# ------------------------------------------------------

import tornado.web
import tornado.websocket
import tornado.ioloop
import datetime

class WebSocketHandler(tornado.websocket.WebSocketHandler):
    users = set()

    def open (self):
        self.users.add(self)
        self.write_message(
            u"[%s]-[%s]-进入" % (self.request.remote_ip, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
        print(u"[%s]-[%s]-进入" % (self.request.remote_ip, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))

    def on_message (self, message):
        for u in self.users:
            u.write_message("收到消息" + message)

    def on_close (self):
        self.users.remove(self)  # 用户关闭连接后从容器中移除用户
        print(u"[%s]-[%s]-离开" % (self.request.remote_ip, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))

    def check_origin (self, origin):
        return True

application = tornado.web.Application([
    (r"/", WebSocketHandler),
])

if __name__ == "__main__":
    application.listen(9006)
    tornado.ioloop.IOLoop.instance().start()
  • 运行这个.py文件

  • 然后websocket服务就已经启动了

  • 还可以通过在线websocket测试网站进行测试


2、jmeter调用websocket

  • 首先需要安装websocket的相关插件

    • 才有相应的websocket的取样器


3、websocket理解

  • 为什么要有websocket?

    • 对于http协议来说,它只能由客户端发出请求,然后服务器做出响应,同时,服务器只能沿原路返回
      • 那么服务器是不能主动给客户端发消息的!
      • 那么像这种,如果服务器有更新,客户端如果要解决,只能通过比如”轮询“的方式请求服务端,这样效率低,耗资源等(需要不停连接,或者http连接始终打开灯)

    • websocket就能做到客户端能给服务器发消息的同时,还能做到服务器能主动给客户端发消息

      • 比如微信、电商等的推送消息等
  • http协议有加密的就是https协议,那么websocket也有类似的

    • ws协议,就是没有加密的
    • wss协议,就是加密的ws协议


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值