Jmeter——Jmeter之Websocket测试

时间:2024-03-28 07:50:07

一、Websocket是一种持久化连接,先通过http协议建立一次连接,在连接中通过

websocket协议持续和服务器进行交互,同时该协议存在被动性特点,服务端可以主动

通知客户端下面是具体抓包情况,可以看出在Websocket连接之后,向服务器发送请求

无需再次建立http连接

Jmeter——Jmeter之Websocket测试
1、简单的从接口层分析下Websocket和http的区别

Headers:Upgrade和Connection表明了请求类型,Sec-WebSocket—主要携带了

websocket一些参数,同样的服务器返回的类型也是如此

Jmeter——Jmeter之Websocket测试
很明显的可以看出在此次http连接中101状态下,通过websocket可以互相通信
Jmeter——Jmeter之Websocket测试


二、编写jmeter脚本并测试

1、下载websocket依赖的jar,放到/apache-jmeter-3.2/lib/ext目录下

下载地址:http://download.csdn.net/download/wpi66/9632930

2、打开WebSocket Sampler
Jmeter——Jmeter之Websocket测试
2、编写脚本
ip:测试服务器域名
Streaming Connection:请求之后是否保持连接,勾选之后在同一次http内继续会话
protocol:ws/wss,wss是在websocket连接之后进行加密传输,根据实际来写
port Number:ws80,wss443,跟http和https道理一样
path:写请求的具体url
request data:通过charles抓包上面可以看出来,每次客户端请求的内容
Jmeter——Jmeter之Websocket测试
利用循环控制器会发现,只需建立一次链接,后面请求内容会在本次连接中继续
Jmeter——Jmeter之Websocket测试
三、简单比较下ws/wss协议,利用wireshark抓包分析

当websocket为ws协议时候,执行接口进行抓包如下开始http三次握手,再请求http

请求,websocket可以看出是明文传输的

Jmeter——Jmeter之Websocket测试

当websocket为wss协议时候,执行接口进行抓包如下

开始http三次握手,再进行https连接,可以看出已经使用TLSv1.2进行加密传输Jmeter——Jmeter之Websocket测试