WebSocket协议
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在 WebSocket API 中,浏览器和服务器只需要一次握手,浏览器和服务器就可以建立连接,两者之间互相发送数据。
彩蛋:https://www.runoob.com/html/html5-websocket.html
JMeter环境搭建
以Mac版本为例,需要先安装jdk8环境然后安装JMeter
下载地址:https://pan.baidu.com/s/1BuTsi-9n6jUj8YrWkBjZ0A 提取码: wc7m
安装完成,运行安装目录下bin-jmeter就能正常启动jmeter了
测试WebSocket接口需要安装相应的补丁插件
下载地址: https://pan.baidu.com/s/1CIlepRcOHcA-2jZUSdcqLg 提取码: 2it4
下载解压完成把文件放置到jmeter-bin-ext文件夹下面
启动WebSocket接口测试
以直播间多用户文字聊天刷屏为例
1、启动jmeter,文件-新建测试计划,命名为【文字聊天】
2、右击测试计划【文字聊天】,添加线程组
![](https://img.haomeiwen.com/i13938598/705aee786ee7ec43.png)
3、右击线程组-Sampler-WebSocket Open Connection,命名为【创建WebSocket连接】
![](https://img.haomeiwen.com/i13938598/7fff5c90280ab2ff.png)
设置WebSocket连接的协议(wss加密连接相当于https,需要在jmeter中安装证书,否则可能不支持)、IP、端口和路径
![](https://img.haomeiwen.com/i13938598/696d0288e673ce6a.png)
4、因为是模拟聊天消息发送,需要有用户登录信息,所以需要向服务器创建一个登录请求
右击线程组-Sampler-WebSocket request-response Sampler,命名为【向服务器发起登录请求】
![](https://img.haomeiwen.com/i13938598/a04dded793b0e4b1.png)
勾选use existing connection使用上面已经创建好的链接,设置好发送的请求参数
![](https://img.haomeiwen.com/i13938598/a2a6ef4d0caccadb.png)
5、读取服务器返回的登录请求,右击线程组-Sampler-WebSocket Single Read Sampler,命名为【读取服务器返回的登录请求】
![](https://img.haomeiwen.com/i13938598/1a2b53e35d5a41cc.png)
![](https://img.haomeiwen.com/i13938598/4d430663b1523488.png)
6、请求服务器登录返回成功之后,下一步开始模拟发送聊天消息和接收聊天消息,同理需要再次创建一个WebSocket request-response Sampler【向服务器发起聊天消息请求】和WebSocket Single Read Sampler【读取服务器返回的聊天消息请求】,如图所示
![](https://img.haomeiwen.com/i13938598/2d267b3c4cc6aab3.png)
7、关闭WebSocket连接,右击线程组-Sampler-WebSocket Close,命名为【关闭WebSocket 连接】
![](https://img.haomeiwen.com/i13938598/fe6c1acce5ef952a.png)
8、查看运行结果,右击测试计划-添加-监听器-察看结果树
![](https://img.haomeiwen.com/i13938598/ffa2814b93d02043.png)
点击运行按钮,通过察看结果树可以看到返回结果,绿色表示通过,红色表示error
![](https://img.haomeiwen.com/i13938598/0bf31ee984c3083e.png)
以上流程仅实现相同用户发消息,要模拟不同用户发送聊天消息,需要进行用户变量设置
9、右击线程组-添加-配置元件-随机变量
![](https://img.haomeiwen.com/i13938598/a8fc3714ca7ff2d1.png)
10、设置变量参数,变量名称、格式,取值范围等
![](https://img.haomeiwen.com/i13938598/7fa7b7f7d5ebba1e.png)
11、请求中利用正则表达式引用该变量,如图所示
![](https://img.haomeiwen.com/i13938598/0cdc5ede7afda997.png)
以上,就能实现多用户同时发送聊天消息的WebSocket接口测试啦,线程数和循环次数等可以在线程组中调节即可
注:修改Response(read)timeout(ms)时间,可以调节请求服务器和接收时间。
根据需求,要实现气泡刷屏效果是由老师端来操作开关,所以同上所示需要新建一个线程来创建一个老师登录请求,向教室内广播一条打开信令,此处就不公布具体信令了。
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
网友评论