目录
- 一、websocket协议
- 二、jmeter如何来测试websocket协议?
- 三、写脚本
- 1.取样器
- 2.websocket和socket是一个东西吗?
- 3.写脚本
一、websocket协议
- 启动websocket项目:
- 下载 virt-dubbo.ova 项目机。
- vmware 打开这个ova项目。
- ./stwebsocketserver.sh 启动项目。
(python3编写的、端口8189、协议 ws)
websocket协议是基于TCP的一种新的网络协议,它实现了客户端与服务端全双工通信:允许服务器主动向客户端发送消息,也允许客户端向服务器请求消息。
http协议: 只能客户端向服务器发起请求,服务器收到请求后,进行处理,原路返回。不能实现服务器主动向客户端发送消息。
- 服务器主动向客户端发送消息:
- 微信有网络时,马上就有消息推送。
- app,有网络时,主动推送下来的消息(不是短信)。
- 最典型的一个应用:app,心跳机制(保活)。
例如收到天气预报的这种短信:它有生成放在发送的序列里面去排队,排到它了就把它推送到你的手机上来。
什么是心跳机制(保活)?
看看这个app是不是一直处于一个在线活跃的状态。过一段时间,服务器主动发送一个消息给这个app,确认这个app是不是处于在线状态。
web测试:登录了一段时间未操作,再来操作时,就会出现登录超时。
- websocket协议:
- ws:不加密数据传输。
- wss:
ws ssl 证书
进行数据加密传输。
- http协议簇 :
- http:不加密数据传输。
- https:
http ssl
进行数据加密传输。
二、jmeter如何来测试websocket协议?
jmeter中要引入插件,jmeter本身的取样器中,不支持websocket协议。
- 插件管理
.jar
,jmeter-plugins-manager-1.6.jar
。- 把jar包,放到jmeter的
libext
文件夹中, 这个文件夹下放第三方开发的jar包。 - 再启动jmeter。
- jmeter的菜单-->选项-->
plugins manager
的入口(没有放plugin
的jar包时,没有这个入口)。 - 点击入口,出现插件管理的弹窗。
- 把jar包,放到jmeter的
- Installed plugins:已安装。
- Available plugins:可用的,但是需要你手动去安装。
- 搜索websocket。
- 勾选WebSocket Samplers by Peter Doornbosch。
- 点击右下角apply changes and restart jmeter。
- upgrades:可以升级的。
三、写脚本
1.取样器
- websocket close:关闭websocket。
- websocket open connection:建立一个websocket。
- websocket ping/pong:测试websocket协议的网络能不能通。
- websocket single read sampler:客户端从服务器端获取响应。
- websocket single write sampler:客户端向服务端发起请求(不会获取响应)。
- websocket request-response sampler:同时具备向服务端发起请求和获取响应的功能。
2.websocket和socket是一个东西吗?
不是一个东西。websocket是一个通信协议(向外暴露接口,可以调用接口),socket:代码层面之间的调用(不向外暴露接口,必须使用代码调用)。
3.写脚本
我用的这个项目就是一个微型的直播室。
建立链接。
WebSocket Single Write Sampler:
- connect:
- user exist connection:使用已经建立连接。
- setup new connection:新建一个连接。
- Data:
- 数据:text 文本,binary 二进制(例如用微信发消息的时候,是用二进制来传的语音)。
- request data。
向服务器发起消息。
收消息。
运行结果中可以看出发过去的是601。
运行结果:直播室创建成功。
这个接口就测完了。
gitee脚本链接:
https://gitee.com/qinghanstudy/gaojixingneng/tree/master/Advanced performance testing
文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。文章是清菡编写的,如有转载,请标明出处!