JMeter中如何保留WebSocket连接实现后续请求复用?
JMeter WebSocket长连接复用配置方案
问题根因
你当前的配置是每次发起请求都重新建立WebSocket连接,是因为没有使用专门的WebSocket采样器、或是测试计划结构不符合长连接复用的逻辑。
具体配置步骤
1. 安装专用WebSocket插件
- 打开JMeter插件管理器,搜索并安装
WebSocket Samplers by Peter Doornbosch,安装完成后重启JMeter生效。
2. 调整测试计划结构,实现连接复用
同一个线程内的WebSocket连接支持默认复用,按以下结构组织采样器即可:
- 线程组下首先添加
WebSocket Open Connection采样器,配置WebSocket服务端的地址、端口、路径、传输协议(ws/wss),该采样器仅执行一次连接建立逻辑。 - 后续需要发送的所有请求,统一使用
WebSocket Single Write Sampler采样器,无需重复填写连接信息,会自动复用当前线程已建立的长连接。 - 所有请求发送完毕后,可添加
WebSocket Close Connection采样器主动关闭连接,也可等待线程结束后自动释放连接。
3. 调整连接相关配置避免重置
- 打开JMeter安装目录下
bin/jmeter.properties文件,修改配置项:httpclient.reset_state_on_thread_group_iteration=false,避免线程迭代时强制重置连接状态。 - 所有WebSocket采样器的配置项中,不要勾选强制新建连接的相关选项。
注意:长连接仅支持同一线程上下文内复用,跨线程无法共享WebSocket连接。
验证方法
添加查看结果树监听器,查看不同请求的连接ID是否一致,也可通过抓包工具确认仅存在一次WebSocket握手请求,后续数据传输均使用同一个TCP连接。
内容的提问来源于stack exchange,提问作者bluseking Zhuo
相关产品推荐
相关产品推荐

