jmeter进行websocket 通信
最近项目弄了基于websocket的通信接口,所以需要做一个websocket的接口压测。
jmeter当前自带的插件无法进行jmeter接口的通信,所以 本人是下载的一套jar包插件,进行的安装
1、插件下载地址:https://bitbucket.org/pjtr/jmeter-websocket-samplers/downloads/?spm=a2c4g.11186623.0.0.6cfd2486vZsEcu
2、WebSocket的插件较多,本文以JMeter WebSocket Samplers为例来进行压测。JMeter WebSocket Samplers具有以下特性:
- 提供 6 个不同的 WebSocket 采样器
- 采样器不会创建额外的线程,因此可以使用大量的 JMeter 线程,
- 支持 wss(基于 TLS 的 WebSocket)
- wss 支持与 JMeter 的 SSLManager 完全兼容,包括客户端证书
- 支持二进制 WebSocket 帧
- 用于检查二进制响应的断言
- 在“查看结果树”中查看二进制结果
- 与 JMeter 的 Header Manager 集成以在 WebScoket 升级请求上设置额外的 HTTP 标头
- 在每次升级请求(即发起 WebSocket 连接的 HTTP 请求)时发送由 JMeter 的 Cookie Manager 定义的 cookie
- 代理支持
- 提供用于丢弃与测试无关的帧的过滤器
- 许多示例 JMeter 测试计划说明了各种功能
3、将下载的插件 .jar包存放在<JMeter安装目录>/lib/ext路径下。
4、插件名称与说明
采集器名称 |
说明 |
---|---|
WebSocket Close |
用于正常关闭 websocket 连接 |
WebSocket Open Connection |
用于显式设置websocket连接 |
WebSocket Ping/Pong |
用于发送ping和接收pong请求 |
WebSocket Single Read Sampler |
用于接收一个(文本或二进制)WebSocket 帧 |
WebSocket Single Write Sampler |
用于发送一个(文本或二进制)WebSocket 帧 |
WebSocket request-response Sampler |
用于执行基本的请求-响应请求 |
5、在jmeter中创建线程组-add-sampler
6、这些插件就是进行websocket通讯,首先设置open Connection进行建立连接
1、websocket分为:ws\wss,相当于 http\https的区别
2、输入socket地址或ip地址
3、端口号
4、接口路径
7、创建查看结果树,在结果树中查看返回结果
关于本文没有涉及的代理、过滤、分片等信息,请参见 JMeter WebSocket Samplers 插件介绍。
操作步骤如下:
步骤一:安装插件 JMeter WebSocket Samplers
步骤二:创建脚本
下面将演示如何在测试场景中添加并配置 Sampler。以下为简单示例,您可以根据业务需要进行调整。
步骤三:运行脚本
脚本编辑完成后,单击页面顶部的开始按钮,运行脚本。
通过 View Results Tree 监听器查看脚本是否运行正常。在左侧导航树中,选择View Results Tree,检查所有 Sampler 是否都配置正确并符合预期。在该监听器中,如果 Sampler 前面有绿色对勾表示运行正常。
如出现运行异常的 Sampler,请参见步骤二:创建脚本进行调试。
部分示例结果如下:
- WebSocket request-response Sampler
根据脚本配置,Request 信息如下:
根据脚本配置,Binary 格式的 Response data 如下:
- WebSocket Single Read Sampler
根据脚本配置,Text 格式的 Response data 如下:
根据脚本配置,Binary 格式的 Response data 如下:
步骤四:导出脚本
当本地脚本调试成功后,选择顶部菜单栏的
步骤五:上传脚本、插件 JAR 包和其他文件至 PTS 进行压测
您需准备以下文件,上传到 PTS:
- 导出的 JMeter 脚本(.jmx 文件)
- JMeter WebSocket Samplers 的 JAR 包
- 脚本中使用的其他数据文件
关于在 PTS 中压测的操作步骤,请参见 JMeter 压测。