lmc-autotest 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
lmc-autotest 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
lmc-autotest 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 车江毅
适用人群 未知
收录时间 2022-11-21

软件简介

lmc-autotest 是万级并发分布式全链路性能压测工具。
 
基于 BSF 基础框架构建全链路压测框架,从框架层面进行 流量录制 (也可以从浏览器自定义录制), 从工具层面进行流量回放,进行性能压测,自动输出压测报告,自动进行全链路功能验收,从而提升测试效能,指导网站性能优化。

全链路压测架构设计

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 源码管理文档和一些最佳实践文档。

快速编译

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

 

 

快速安装

一般在 mysql8.0,jdk8 环境下,三步执行即可安装。同样也可以支持云原生方式安装,如 阿里云安装最佳实践
#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   &
 

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

完善的实践文档

功能界面展示

 

 

 

 

 

 
by   车江毅
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(2) 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
2 评论
45 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部