13-Websocket协议与MQ协议
Websocket协议
基于TCP全双工协议,即可以从客户端向服务器端发送请求,也可以从服务器端主动向客户端发送消息。
HTTP协议只能从客户端向服务器发送请求,服务器端收到请求后,做出响应,发送给客户端
Websocket和HTTP都是基于TCP协议的,所以使用抓包工具可以抓到websocket的数据
抓包
- F12
- Fiddler
- Charles
- Wireshark
- Tcpdump
HTTP协议簇:http、https协议。https=http+ssl数据加密传输
websocket:ws,wss协议。wss=ws+ssl数据加密传输
Jmeter测试Websocket
安装插件
jmeter本身不支持websocket,需要安装插件
将「jmeter-plugins-manager-1.6.jar」放入「li b\ext」文件夹中,重启jmeter可以看到Jmeter Plugins Manager
在「Abaliable Plugins」搜索「websocket」选择「Websocket Samplers by Peter Doornbosch」后点击「Apply Changes and Restart Jmeter」
插件「取样器」,可以发现新增了一些Websocket的取样器
- WebSocket Close 关闭连接
- WebSocket Open Connection 建立连接
- WebSocket Ping/Pong 检查网络是否通畅
- WebSocket Single Read Sampler 相当于http中的response 读取响应信息
- WebSocket Single Write Sampler 相当于http中的request 向服务器发起信息
- WebSocket request-response Sampler 发送请求 同时获取响应信息
MQ协议
消息队列,是一种先进先出的典型数据结构,一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性的架构
MQ典型产品:「RabbitMQ」、「ActiveMQ」、「Kafka」、「RocketMQ」、「ZeroMQ」
安装插件
「MQTT Protocol Support」
安装插件后可以看到「取样器」中增加了如下内容
- MQTT Publisher 发布
- MQTT Subscriber 消费
- 点击「连接」
- 新增「订阅」
- 修改「消息」
使用Jmeter发送
点击「Generate ID」创建一个随机ID
可以从「订阅」中看到创建的ID
从「主题」中可以看到,主题已经被推送过来了