Jmeter 压测 ws(s)

10字数 689阅读 2172

  上一篇Jmeter压测http(s)介绍了如何使用Jmeter压测常规的web服务接口。本文将继续演示如何使用Jmeter对ws(s)进行压力测试。

  有过Socket相关开发经验的人应该都不会陌生,ws协议就是WebSocket协议,而wss对应就是在SSL上运行的WebSocket协议。有关WebSocket的知识,这里不做过多说明,有兴趣可以看看本人写的另外一篇文章:记录一次迁移wss WebSocket的事故

配置环境

  由于JMeter需要添加几个扩展Jar包后方可支持ws测试,所以我们需要配置相关的测试环境,以下是这些jar包的下载地址。

WebSocket Sampler jars
WebSocket Sampler jars

  将下载好的Jar包放到JMeter的lib\ext目录下即可。

ws测试

  启动Jmeter后,右键依次选择 “测试计划” -> “添加” -> “Threads(Users)” -> “线程组” -> “Sampler” -> “WebSocket Sampler”。

WebSocket Sampler
WebSocket Sampler
WebSocket Sampler
WebSocket Sampler

选项说明:

    1. WebServer
    • Server Name or IP:目标WebSocket服务器所在地址或名称
    • Port Number:WebSocket 服务监听端口(http和ws一般是80端口,https和wss一般是433端口)
    1. Timeout(单位:毫秒)
    • Connection:连接等待完成的最长时间
    • Response:消息响应的最大等待时间
    1. WebSocket Request
    • Implementation:目前仅支持RFC6455(v13) ,这也是最新版的WebSocket协议标准
    • Protocol:WebSocket标识,ws或者wss
    • Streaming Connection:用于TCP会话是否需要保持。如果勾上表示连接会一直存在,否则在第一次响应后该连接就会被关闭
    • Request data:请求要发送的数据
    • Path:WebSocket端点路径

  为了方便,下面以一个在线的WebSocket网站来开展测试。分别在Server Name or IP一栏中输入:echo.websocket.org,在Request data一栏中输入:Send test。启动测试计划,得到如下响应结果。

察看结果树响应
察看结果树响应
聚合报告响应
聚合报告响应

wss测试

  相比于ws测试,wss的测试也仅需修改两处地方。分别将Port Number修改为:443,以及将Protocol修改为:wss。启动测试计划后,我们同样可以得到系统的正常响应。

写在最后

  结合“函数助手”或者“CVS数据文件”的方式,我们同样可以模拟实现不同的用户,发送不同的请求参数。有关于JMeter的内容到这就告一段落了,后续如果还有其它的补充,我会及时的更新上去。

推荐阅读更多精彩内容