autotest 万级并发全链路自动化性能压测实践

目标

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

方案

按照五个维度打造研发管理体系思考和规划,按照自身场景,考虑自研全链路压测工具;本身工具开发难度不高,项目速度快,投入周期短;同时也长期解决问题,灵活适配,能有效达成目标;

 lmc-autotest BSF全链路压测工具

开源地址:https://gitee.com/chejiangyi/...
基于BSF基础框架构建全链路压测框架,从框架层面进行流量录制(也可以从浏览器自定义录制),从工具层面进行流量回放,进行性能压测,自动输出压测报告,自动进行全链路功能验收,从而提升测试效能,指导网站性能优化。

全链路压测架构设计

autotest 万级并发全链路自动化性能压测实践_第1张图片

  1. 业务层引入bsf core和autotest jar包,该基础框架可以对流量进行采样录制。
  2. 采样录制的流量批量同步到mysql存储引擎。
  3. 全链路压测管理端,进行任务编写并启动压测任务。
  4. 压测任务分发到压测到节点集群,并进行样本流量批量回放压测。
  5. 超过时间或者指定条件后,自动生成压测报告。 单个节点建议最大2000-3000并发线程,可以开多个压测节点(可部署10-20个节点,随时扩缩容),支持万级高并发大规模分布式性能压测。

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

    autotest 万级并发全链路自动化性能压测实践_第2张图片
    任务分别由样本筛选脚本,错误过滤样本脚本,压测请求前脚本,压测请求后脚本,任务终止脚本组成。压测节点收到任务后按照任务执行生命周期,不间断进行压测,直到命中“任务终止脚本规则”后,正常退出。
    全链路压测管理端功能

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

    功能界面展示

    autotest 万级并发全链路自动化性能压测实践_第3张图片
     
    autotest 万级并发全链路自动化性能压测实践_第4张图片

autotest 万级并发全链路自动化性能压测实践_第5张图片

autotest 万级并发全链路自动化性能压测实践_第6张图片

autotest 万级并发全链路自动化性能压测实践_第7张图片

autotest 万级并发全链路自动化性能压测实践_第8张图片
  
autotest 万级并发全链路自动化性能压测实践_第9张图片
 
autotest 万级并发全链路自动化性能压测实践_第10张图片
 
autotest 万级并发全链路自动化性能压测实践_第11张图片
  by 车江毅 

你可能感兴趣的:(autotest 万级并发全链路自动化性能压测实践)