项目介绍
基于
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
看到最后,如果这个项目对你有用,一定要给我点个「 在看和赞 」。