使用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、进行压测时,要注意真实场景是需要一直保持连接,还是需要请求后断开,需要根据实际情况去进行设置,不然容易照成与实际场景不符

原文地址:https://www.cnblogs.com/dingxinwen/p/14805356.html