JMeter webSocket协议

WebSocket 协议简介

WebSocket 是一种应用层协议,可以实现持久连接的全双工双向通信,属于服务端推送技术。

HTTP 协议是单向通信协议,只有客户端发起HTTP请求,服务端才会返回数据。而WebSocket协议是双向通信协议,在建立连接之后,客户端和服务器都可以主动向对方发送或接受数据。WebSocket协议建立的前提需要借助HTTP协议,建立连接之后,持久连接的双向通信就与HTTP协议无关了。

WebScoket 使用了自定义协议,所以URL与HTTP协议略有不同,未加密的连接为ws://,加密的连接为wss://

 

 

使用 WebSocket Sampler 实现

1)按 F12 打开浏览器开发者工具,选 Network > WS过滤出 websocket 协议的接口

2)在JMeter Plugins Manager 中安装 WebSocket Sampler by Maciej Zaleski,重启JMeter

3)右键添加取样器 WebSocket Sampler

Server Name or IP:服务器地址

Port Number:websocket 监听的端口号,默认80

Connection:连接超时时间(连接花费时间较长时,要将超时时间设置大一点)

Response:响应超时时间

Implementation:目前只支持RFC645(V13),WebSocket协议标准的最新版

Protocol:协议(ws、wss)

Content encoding:编码

Connection Id:连接标识

Ignore SSL certificate errors:是否忽略SSL证书错误

Streaming Connection:是否保持TCP session,如果勾上标识连接会一直存在,如果没有勾上,那么得到第一次响应后该链接就会被关闭。

Request data:填入将要发送的请求(Messages中客户端发送的数据)

Response Pattern:采样器将等待含有该标识的消息并继续通信(或者直到timeout,该连接关闭)

Close Connection Pattern:如果服务器返回的消息含有这样的字符,就结束会话。

Message Backlog:定义服务器返回消息保留的最大长度

 

使用 WebSocket request-response Sampler 实现

1)在JMeter Plugins Manager 中安装 WebSocket Samplers by Peter Doornbosch插件

 重启JMeter,取样器中会多出下图的几个选项

2)右键添加取样器 WebSocket Open Connection(建立连接)

websocket发送数据到后端,与http请求的原理是相通的,所以发送的数据如果含有非常字符,如"/"、"+"、"%"、引号等,就会引起解析错误,需要用__urlencode()函数进行URL转码。

 3)右键添加取样器 WebSocket request-response Sampler

 

use existing connection:使用现有的连接

setup new connection:创建新的连接

Data:支持Text文本(包括JSON)和Binary二进制数据的发送。默认请求响应的超时时间为6S,超过这个时间报错。

4)右键添加取样器 WebSocket Single Read Sampler (模拟消息的已读回执)

原文地址:https://www.cnblogs.com/scholars-xian/p/11697238.html