2023年7月11日发(作者:)
Jmeter对基于websocket协议的压⼒测试 近期项⽬需要对基于websocket的协议进⾏压⼒测试。作为⼩⽩的我,听到这样的消息,⾸先先去了解这个协议,然后确定使⽤的⼯具。
⼀、websocket协议介绍 先简单介绍⼀下这个协议。 ⾸先,Websocket是⼀个持久化的协议,相对于HTTP这种⾮持久的协议来说。简单的举个例⼦吧,⽤⽬前应⽤⽐较⼴泛的PHP⽣命周期来解释。 HTTP的⽣命周期通过Request来界定,也就是⼀个Request ⼀个Response,那么在HTTP1.0中,这次HTTP请求就结束了。在HTTP1.1中进⾏了改进,使得有⼀个keep-alive,也就是说,在⼀个HTTP连接中,可以发送多个Request,接收多个Response。但是请记住 Request = Response , 在HTTP中永远是这样,也就是说⼀个request只能有⼀个response。⽽且这个response也是被动的,不能主动发起。 ⾸先Websocket是基于HTTP协议的,或者说借⽤了HTTP的协议来完成⼀部分握⼿。在握⼿阶段是⼀样的 ⾸先我们来看个典型的Websocket握⼿(借⽤Wikipedia的。。 WebSocket握⼿协议1、客户端握⼿请求(注意:键值之间有⼀个空格,⾏间有换⾏符号0x13x10或者说rn)GET /WebSocket/LiveVideo HTTP/1.1Upgrade: WebSocketConnection: UpgradeHost: localhost:8080 (客户端请求主机)Origin: 127.0.0.1 (来源⽹页地址)Sec-WebSocket-Key1: 23 asdfJKj,asdjkSec_WebSocket-Key2: wewerw234 jij9980x13x10 + 8个字节Sec_WebSocket-Key3值,没有键名(注意,这⾥的0x13x10的额外的,也就说有两个连续的0x13x10)2、服务端握⼿回复HTTP/1.1 101 Web Socket Protocol HandshakeUpgrade: WebSocketConnection: UpgradeSec-WebSocket-Origin: 127.0.0.1 (来源⽹页地址)Sec-WebSocket-Location: ws://localhost:8080/WebSocket/LiveVideo
⼆、Jmeter测试webocket协议安装⽅式很简单,解压完成以后直接放到jmeter的libext⽬录下。然后重启Jmeter就OK了。然后再采样那⾥就可以看到websocket了接下来看看websocket的页⾯解释⼀下各项的意思1、WebServer(1)Server Name or IP:WebSocket发送的⽬标服务器的地址或者名称(2)Port Number:WebSocker服务器监听的端⼝号。(⼀般是HTTP 80端⼝,可以通过WireShark数据包得到)2、Timeout:
(1)Connection – 发送⼀个连接请求后,Jmeter等待连接完成的最长时间,单位是毫秒。(2)Response - 对响应消息的最⼤等待时间。3、WebSocket Request(1)Implementation – 只⽀持RFC6455(v13) ,WebSocket协议标准的最新版。(2)Protocol – 有ws与wss之分, ws前缀是WebSocket连接的辨别标识,wss前缀是WebSocket安全连接的辨别标识。根据⾃⼰的实际情况填写(3)Streaming Connection – 选择这个TCP session要不要保持,如果勾上标识连接会⼀直存在,如果没有勾上,那么得到第⼀次响应后该链接就会被关闭。(4)Request data:填⼊将要发送的请求,要跟开发沟通好,这个是什么格式的消息。ket Response(1)Response Pattern – 采样器将等待含有该标识的消息并继续通信(或者直到timeout,该连接关闭)(2)Close Connection Pattern – 如果服务器返回的消息含有这样的字符,就结束会话。(3)Message Backlog – 定义服务器返回消息保留的最⼤长度。三、Jmeter测试运⾏然后查看结果就OK了。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689026708a197091.html
评论列表(0条)