使用jmeter对websocket进行性能测试
一、websocket
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
二、jmeter-websocket组件
- 可以在官网下载对应的组件:
https://jmeter-plugins.org/
- 可以直接在jmeter软件下载,自动安装
在jmeter里直接下载需要先安装jmeter的插件管理器:
下载地址:https://jmeter-plugins.org/get/
将下载的jar包放入 jmeter的 lib/ext目录中,然后重启jmeter。
然后打开插件管理器:
下载完成后,JMeter会自动重启
三、调试
- 我们可以事后谷歌自带的f12工具抓包,查看websocket请求
- 然后创建线程组,然后在下面添加对应的websocket请求
- 根据抓包的内容填写对应的请求内容:
(可以使用WebSocket request-response Sampler或WebSocket Sampler,方法基本上是一样的)
websocket的ws对用的是http,wss对应的是https
- websocket相关的其他sampler
- 然后添加查看结果树,观察返回的结果
四、相关使用技巧
1、Path和Requst data要注意编码格式,websocket发送数据到后端,与http请求的原理是相通的,所以发送的数据如果含有非常字符,如"/"、"+"、"%"、引号等,就会引起解析错误,所以需要特别注意
2、使用wss时,一定要设置端口为443,不然将使用ws的默认端口。
3、可以通过控制器来模拟群发消息和真实场景
4、进行压测时,要注意真实场景是需要一直保持连接,还是需要请求后断开,需要根据实际情况去进行设置,不然容易照成与实际场景不符