基于websocket协议的压力测试

FastAPI Web框架教程 第13章 WebSocket WebSocket是一种在单个。 阅读详情

背景

最近客户端实现了一个基于websocket的消息推送功能:长连接网络开关下发开后启动,然后保持链接,每隔15分钟发一次心跳包,服务器有数据时直接下发生效,因此需要对服务器进行压测。本次通过写python脚本的方法模拟并发进行压力测试,相关测试方法如下~

什么是websocket协议

WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

测试场景

1.并发创建长连接,3min内建立连接22w,总连接数维持在22w左右,间歇下发通知,查看服务器的稳定性
2.并发创建长连接,间歇性断开并重连,保证同时在线的长连接在22w左右,运行12H,查看服务器的稳定性

测试步骤

  1. 编写脚本实现并发请求并发

     

    image

     

    image

  2. 搭建测试环境
    ①找1台liunx机器,搭建python运行环境,安装脚本支持的包、模块
    ②运行websocket脚本,保证脚本正常运行
    ③ 编写run_test.sh脚本,运行多个websocket.py,单机大约可同时并发大约5w~6w的tcp链接,视linux 系统内核而定(因为本次需要同时并发22w,共4台liunx机器,所以单台并发6w左右)

     

    image

问题总结

  1. 有些linux系统最大tcp链接数比较小,无法支持同时并发6w量的tcp链接?
    原因:
    最大tcp连接数和系统允许打开的最大文件数,用户允许打开的最大文件数,TCP网络连接可用的端口范围有关,取上述的最小值;
    一般的设置规则为:系统最大文件数>可用端口>用户最大文件数

结语

对测试技术感兴趣的同学,欢迎加QQ群175317069,一起学习,相互讨论。

群内已经有小伙伴将知识体系整理好(源码,笔记,PPT,学习视频),欢迎加群免费领取

加QQ群175317069,免费领取资料

python实现websocket的客户端压力测试 主要为大家详细介绍了python实现websocket的客户端压力测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

相关推荐

串口调试神器诞生记:我是如何用Cursor+AI自动生成C#上位机的(含VSCode插件清单)

本文详细介绍了如何利用Cursor和AI技术快速开发C#上位机程序,实现高效的串口通讯调试。从开发环境搭建到代码自动生成,再到性能优化和功能增强,全面展示了AI辅助开发在串口调试中的实际应用和显著效率提升。

weixin_28340315的博客 302

JMeter进行WebSocket压力测试

JMeter 是目前最为流行的开源性能测试工具,JMeter 本身提供的基于插件的机制允许第三方实现标准 JMeter 所不支持的协议,而 WebSocket 的一个比较好的实现是 WebSocketSampler。之后用 Netty-SocketIO 开发了一个简单的服务端,支持服务端主动向客户端发送消息,同时也支持客户端请求,服务端响应方式。注意版本号要写插件项目里的版本一致,我在最开始使用上面的 jar 包时用的最新版本,报错。如果没有上面的6个 jar 包,在进行测试的时候同样也会报错。

qq_48811377的博客 3944

STM32F103C8T6飞控入门:从零开始,用HAL库和MPU6050搭建你的第一架四轴无人机

本文详细介绍了如何使用STM32F103C8T6和MPU6050模块从零开始搭建四轴无人机飞控系统。通过硬件选型、电路设计、HAL库配置、姿态解算算法实现以及PID控制等步骤,帮助创客和嵌入式爱好者快速入门飞控开发。文章还提供了实用的调试技巧和常见问题解决方案,适合想要掌握四旋翼无人机核心技术的开发者。

weixin_42524750的博客 266

一文让你全面认识WebSocket压测!

01 WebSocket是什么? 「WebSocket」是一种在单个TCP连接上进行全双工通信的协议。

公众号【伤心的辣条】资料领取~ 3595

三维Copula建模进阶:从对称、嵌套到Pair-Copula(C-Vine/D-Vine)到底怎么选?

本文深入探讨三维Copula建模的进阶策略,包括对称Archimedean、嵌套结构和Vine Copula(C-Vine/D-Vine)的选择方法。通过对比数学特性、计算复杂度和实际应用案例,提供了一套针对金融风险分析等场景的决策框架,帮助分析师根据数据特征选择最优模型。

weixin_27038701的博客 436

科研党福音:如何用Zotero+Paper Agent打造你的AI论文速递系统(附详细配置教程)

本文为科研工作者提供了一套利用Zotero和开源工具Paper Agent构建自动化AI论文速递系统的详细教程。该系统能基于用户在Zotero中的文献库智能学习研究兴趣,每日自动从arXiv等平台筛选、下载并深度解读最相关的前沿论文,生成个性化日报,实现从被动接收到主动精准获取的知识工作流重塑。

kite3的博客 517

通过jmeter对websocket后台做压测

后台使用java程序,通过springboot集成的stomp协议暴露websocket接口,所以下文测试过程会有特定的stomp报文,无需在意,关注流程即可本次测试使用jmeter模拟大量用户接收群消息的场景,可覆盖连接数以及消息并发的压测。

m0_37298252的博客 6450

告别Python中间件!C#原生调用YOLOv11/v12:工业视觉检测零语言壁垒全流程

本文介绍了一种基于C#和ONNX Runtime的工业视觉检测解决方案,解决了传统YOLO模型在工业应用中面临的三大痛点:语言壁垒、性能损耗和模型更新困难。该系统采用三层架构设计,支持C#原生调用YOLO模型,无需中间件,性能损耗低于5%,满足工业产线30FPS+的实时性要求。文章详细阐述了环境搭建、模型导出规范、核心代码实现及工业级优化方案,提供可直接用于生产环境的完整流程,实现了训练与部署的解耦,显著降低了维护成本。该方案兼容主流YOLO版本,支持全平台部署,为工业视觉检测提供了高效可靠的C#集成方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 188

Jmeter对基于websocket协议的压力测试

近期项目需要对基于websocket的协议进行压力测试。作为小白的我,听到这样的消息,首先先去了解这个协议,然后确定使用的工具。     一、websocket协议介绍     先简单介绍一下这个协议。     首先,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。 简单的举个例子吧,用目前应用比较广泛的PHP生命周期来解释。     HTTP的生命周期通过Re

黑面狐 2万+

《深入掌握PostgreSQL数据库》 - 专栏介绍和目录

本专栏系统讲解PostgreSQL数据库的全栈知识,涵盖基础入门到高级实战。内容分为语言基础与进阶、核心原理、高可用架构、性能优化、运维管理、扩展开发等多个模块。从安装配置、数据类型选择到窗口函数、CTE等高级特性,再到索引优化、执行计划分析等性能调优技巧,全面解析PostgreSQL的核心功能。同时深入探讨MVCC机制、WAL日志、并发控制等底层原理,并分享高可用架构设计、备份恢复等运维实践。适合各层次开发者系统学习PostgreSQL,掌握这一强大开源数据库的关键技术。

数据知道的博客 3461

微信小程序 - 实现人脸识别对比+人脸相似度数据,用户从相册选择或拍照上传两张图片进行人脸对比得到人脸相似度及判断是否是同一个人,微信小程序检测人脸相似度(免费纯前端方案+调用第三方API接口方案)

微信小程序实现人脸识别对比,微信小程序人脸对比 人脸对比识别 人脸对比相似度,实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,小程序人脸相似度对比,快速识别两张照片的相似程度(用百分比)图片相似度对比在线测试,图片相似度对比,微信小程序人脸相似度对比分析,计算两张人脸的相似度,从而判断是否同一个人,并给出相似度评分。小程序如何实现人脸相似度比对,小程序纯前端怎么对比两张图片的相似度,计算两幅图像的相似度,图像相似度对比方法,调用百度AI的人脸识别,微信小程序中实现人脸识别认证,实现人脸检测、人脸

🏆 前端领域优质创作者 4864

WebSocket协议接口压力测试(Jmeter)

WebSocket 连接建立的核心,就是客户端和服务端通过一次 HTTP 请求,协商将连接从 HTTP 协议升级到 WebSocket 协议。1、当客户端(如浏览器)想要建立一个 WebSocket 连接时,它会发送一个带有特定头部的 HTTP 请求。Connection: Upgrade // 告诉服务器,我要升级协议Upgrade: websocket // 升级成 websocket 协议。

qq_37970944的博客 432

YOLOv13改进策略【特征提取层】| 引入注意力卷积模块RFAConv,关注感受野空间特征 助力yolov13精度提升

RFAConv:创新空间注意力和标准卷积运算感受野空间特征是针对卷积核设计的,根据卷积核大小动态生成。以3×3卷积核为例,它由非重叠滑动窗口组成,每个窗口代表一个感受野滑块。

Limiiiing的博客 363

最全基于 Websocket 协议的压力测试_websocket 压力测试,2024年软件测试网络编程总结篇

③ 编写run_test.sh脚本,运行多个websocket.py,单机大约可同时并发大约5w~6w的tcp链接,视linux 系统内核而定(因为本次需要同时并发22w,共4台liunx机器,所以单台并发6w左右)。1.并发创建长连接,3min内建立连接22w,总连接数维持在22w左右,间歇下发通知,查看服务器的稳定性。2.并发创建长连接,间歇性断开并重连,保证同时在线的长连接在22w左右,运行12H,查看服务器的稳定性。①找1台liunx机器,搭建python运行环境,安装脚本支持的包、模块。

2401_84141219的博客 506

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

基于 Websocket 协议的压力测试

背景 最近客户端实现了一个基于websocket的消息推送功能:长连接网络开关下发开后启动,然后保持链接,每隔15分钟发一次心跳包,服务器有数据时直接下发生效,因此需要对服务器进行压测。 本次通过写python脚本的方法模拟并发进行压力测试,相关测试方法如下。 什么是websocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011...

zhusongziye的博客 6058

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

使用Jmeter对websocket协议进行压力测试

最近有一个微信聊天系统的项目需要性能测试,既然是测试微信聊天,肯定绕不开websocket接口的测试,首选工具是Jmeter,网上能搜到现成的方法,但是网上提供的jar包往往不是最新的,既然是用最新版本的Jmeter4.0,那么所依赖的插件jar包也应该追求新的。所以提供了以下链接供大家下载(甚至连源码都提供): 可参考JMeter下载、安装,并设置默认语言及外观 工具及插件下载地址: (1...

DaisyCold的博客 1499

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

3步搞定WebSocket实时通信压力测试:从协议配置到性能验证

当你还在为HTTP接口响应延迟烦恼时,物联网设备、实时聊天系统和金融交易平台早已依赖WebSocket(网络套接字)实现毫秒级数据传输。但生产环境中频繁出现的"连接断开""消息堆积"等问题,往往源于测试阶段未模拟真实用户负载。本文基于Gatling框架,提供一套完整的WebSocket性能验证方案,帮助你在上线前发现并发连接数、消息吞吐量等关键指标的瓶颈。 ## 核心组件与测试架构 Gatlin

gitblog_00685的博客 672

JMeter WebSocket压力测试实战:从协议原理到高并发场景构建

WebSocket作为一种在单个TCP连接上实现全双工通信的网络协议,其核心原理在于突破了传统HTTP请求-响应模式的限制,允许服务器与客户端之间建立持久连接并进行双向实时数据交换。这一特性为在线聊天、实时数据推送、协同编辑等场景提供了低延迟、高实时的通信能力,具有重要的技术价值。在性能测试领域,对WebSocket协议进行压力测试是评估系统在高并发连接和持续消息流下稳定性的关键。工程师需要关注连接态资源消耗、消息推送吞吐量与延迟等核心指标。本文聚焦于使用JMeter这一主流负载测试工具,通过其WebSoc

weixin_33894640的博客 365

开源模型应用落地-工具使用篇-JMeter(一)

使用JMeter工具压测AI服务链路,及时发现潜在的性能瓶颈

以微薄之力,予他人些许温暖. 1万+
上一篇: docker下使用selenium+testng实现web自动化
下一篇: 做Web UI最全的鼠标键盘事件!
TestingGDR
博客等级 码龄8年 496粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值