全链路压测效能10倍提升的压测工具实践笔记

IT技术2年前 (2022)更新 IT大王
0

背景

创业型公司或创新型项目往往团队资源有限,人员能力水平有限,难以投入专业自动化压测人员;
同时部分业务(tob/toc场景)长期有中小型活动场景带来小规模流量并发,需要产研能长期保障并及时感知和解决网站性能和稳定性问题。

目标

1. 开发人员5分钟上手压测,30分钟熟练。
2. 常规性能压测自动化,常态化;零开发,零测试投入;1分钟自动化生成报告,快速定位问题!
3. 针对场景(运营活动)性能压测自动化,整体压测效能提升10倍。减少1名专业压测人员投入!

方案

按照五个维度打造研发管理体系思考和规划,按照自身场景,考虑自研全链路压测工具;
本身工具开发难度不高,项目速度快,投入周期短;同时也长期解决问题,灵活适配,能有效达成目标;
lmc-autotest BSF全链路压测工具开源地址:https://gitee.com/chejiangyi/lmc-autotest
基于BSF基础框架构建全链路压测框架,从框架层面进行流量录制(也可以从浏览器自定义录制),从工具层面进行流量回放,进行性能压测,自动输出压测报告,自动进行全链路功能验收,从而提升测试效能,指导网站性能优化。

全链路压测架构设计

全链路压测效能10倍提升的压测工具实践笔记

1. 业务层引入bsf core和autotest jar包,该基础框架可以对流量进行采样录制。
2. 采样录制的流量批量同步到mysql存储引擎。
3. 全链路压测管理端,进行任务编写并启动压测任务。
4. 压测任务分发到压测到节点集群,并进行样本流量批量回放压测。
5. 超过时间或者指定条件后,自动生成压测报告。

全链路压测任务执行生命周期

全链路压测效能10倍提升的压测工具实践笔记

任务分别由样本筛选脚本,错误过滤样本脚本,压测请求前脚本,压测请求后脚本,任务终止脚本组成。
压测节点收到任务后按照任务执行生命周期,不间断进行压测,直到命中“任务终止脚本规则”后,正常退出。

全链路压测管理端功能

1. 任务管理:可以对定制的压测任务进行编写,管理。可以实现不同场景和不同姿势的压测进行定制。编写任务帮助文档
2. 定时计划:可以对所有任务进行定时计划编写,管理。实现任务定时自动化调度。编写定时计划帮助文档
3. 节点状态:可以管理所有压测节点的心跳和状态及当前的性能情况。
4. 压测报告:可以管理所有压测任务自动生成的报告。
5. 执行日志:所有压测任务和定时计划执行的执行日志,在压测执行异常的时候,可以查看执行日志获悉。
6. 采样查询:自动化bsf框架录制的流量或者用户自动导入的流量,可以通过此菜单进行查询和模拟调用验证。
7. 公共方法库:通过定义公共的方法库,简化任务和定时计划的编写。公共方法库帮助文档
8. 用户管理:可以管理平台用户和token授权。
9. 帮助文档:到gitee源码管理文档和一些最佳实践文档。

快速编译

注意 bsf-core.jar和bsf-autotest.jar包,可能出现包引用错误,请至gitee release中下载相应jar包。
cd lmc-autotest
mvn install

快速安装

一般在mysql8.0,jdk8环境下,三步执行即可安装。同样也可以支持云原生方式安装,如阿里云安装最佳实践。
  • sql初始化脚本
  • 管理端provider包
  • 节点端task包
#web管理端
nohup java -jar 
-Dspring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/autotest?useSSL=false 
-Dspring.datasource.druid.username={数据库} 
-Dspring.datasource.druid.password={数据库} 
lmc-autotest-provider.jar > provider.log 2>&1 &
#压测节点
nohup java -jar 
-Dspring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/autotest?useSSL=false 
-Dspring.datasource.druid.username={数据库} 
-Dspring.datasource.druid.password={数据库} 
lmc-autotest-task.jar > task.log 2>&1 &

支持多语言使用和第三方介入

  • OPEN API
  • java完整版自动录制样本流量sdk集成
  • C#版本流量录制simple sdk
  • java版本流量录制simple sdk

完善的实践文档

  • 小白快速上手压测
  • 小白快速流量回放压测
  • 自动化QPS核心和主要接口jenkins触发性能压测
  • 自动化QPS核心和主要接口性能url压测
  • 自动化QPS不同级别接口压测
  • 自动化QPS不同开发人员接口压测
  • 自动化QPS全链路接口压测
  • 自动化QPS秒杀/活动接口压测 – 待实践
  • 自动化TPS秒杀/活动场景压测 – 待实践
  • k8s滚动升级验证

功能界面展示

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

全链路压测效能10倍提升的压测工具实践笔记

by 车江毅
加微信,可免费试用交流!

全链路压测效能10倍提升的压测工具实践笔记

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章