当前位置: 欣欣网 > 码农

15.6k star! 推荐一款全链路压测效能10倍提升的压测工具

2024-06-26码农

项目介绍

基于 BSF基础框架 构建全链路压测框架,从框架层面进行 流量录制 或浏览器自定义录制,从工具层面进行流量回放,进行性能压测,自动输出压测报告,自动进行全链路功能验收,从而提升测试效能,指导网站性能优化。工具支持分布式部署,万级高并发压测,灵活定制化压测;支持调用链传递,支持压测染色!

项目结构

lmc-autotest
-- lmc-autotest-core #公共代码 (核心层)
-- lmc-autotest-dao #数据库操作 (数据层)
-- lmc-autotest-service #公共业务服务 (服务层)
-- lmc-autotest-task #压测任务节点 (任务层)
-- lmc-autotest-provider #压测管理站点 (网站及api层)
-- doc #项目资料 (文档资料)
-- README.md #项目文档 (说明文档)

项目编译

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

管理端和压测端,整体代码逻辑还是非常简单的,思路也容易理解!欢迎大家阅读源码进行修改~~~

bsf-autotest sdk源码 包含调用链传递和染色传递逻辑,代码不多,思路简单,可以自行定制。

压测工具对比

autotest locust Jmeter LoadRunner
分布式压力 支持 支持 支持 支持
单机并发能力
并发机制 线程 协程 线程 线程
开发语言 Java python Java Java
报告与分析 完善 简单图表 简单图表 完善
授权方式 开源 开源 开源 商业收费
测试脚本形式 JavaScript python Gui Java
资源监控 支持 不支持 不支持(需下载插件) 支持

全链路压测设计

全链路核心流程图

1. 业务层引入bsf core和autotest jar包,该基础框架可以对流量进行采样录制。

2. 采样录制的流量批量同步到mysql存储引擎。

3. 全链路压测管理端,进行任务编写并启动压测任务。

4. 压测任务分发到压测到节点集群,并进行样本流量批量回放压测。

5. 超过时间或者指定条件后,自动生成压测报告。

单个节点建议最大2000-3000并发线程,可以开多个压测节点(可部署10-20个节点,随时扩缩容),支持万级高并发大规模分布式性能压测。

压测任务生命周期图

任务分别由样本筛选脚本,错误过滤样本脚本,压测请求前脚本,压测请求后脚本,任务终止脚本组成。

压测节点收到任务后按照任务执行生命周期,不间断进行压测,直到命中「任务终止脚本规则」后,正常退出。

管理端功能

1. 任务管理:可以对定制的压测任务进行编写,管理。可以实现不同场景和不同姿势的压测进行定制。 编写任务帮助文档

2. 定时计划:可以对所有任务进行定时计划编写,管理。实现任务定时自动化调度。 编写定时计划帮助文档

3. 节点状态:可以管理所有压测节点的心跳和状态及当前的性能情况。

4. 压测报告:可以管理所有压测任务自动生成的报告。

5. 执行日志:所有压测任务和定时计划执行的执行日志,在压测执行异常的时候,可以查看执行日志获悉。

6. 采样查询:自动化bsf框架录制的流量或者用户自动导入的流量,可以通过此菜单进行查询和模拟调用验证。

7. 公共方法库:通过定义公共的方法库,简化任务和定时计划的编写。 公共方法库帮助文档

8. 用户管理:可以管理平台用户和token授权。

9. 帮助文档:到gitee源码管理文档和一些最佳实践文档。

功能界面

安装文档

推荐: 支持云原生docker方式部署(也支持传统方式应用部署),k8s部署可最大化利用资源,可以在压测闲置的时候最大程度释放资源给其他云服务。秒级可扩缩容n个压测节点,2G内存即可实现万级并发压测!

  • release

  • 快速安装

  • 阿里云k8s部署实战笔记

  • 使用文档

  • 定制场景录制文档

  • 任务编写案例

  • 任务编写案例2

  • 计划任务编写案例

  • 样本导入案例

  • 公共方法库案例

  • 实践笔记

  • 小白快速上手压测

  • 小白快速流量回放压测

  • 自动化QPS核心和主要接口jenkins触发性能压测

  • 自动化QPS核心和主要接口性能url压测

  • 自动化QPS不同级别接口压测

  • 自动化QPS不同开发人员接口压测

  • 自动化QPS全链路接口压测

  • 自动化QPS秒杀接口压测

  • 自动化TPS秒杀场景压测

  • k8s滚动升级验证

  • 更多详情

    以上安装,使用文档,实践请浏览

    https://gitee.com/chejiangyi/lmc-autotest

    看到最后,如果这个项目对你有用,一定要给我点个「 在看和赞 」。