分布式性能压测系统

阅读数:1 2020 年 3 月 25 日 19:48

分布式性能压测系统

平台简介和痛点

分布式压力测试平台针对实际使用过程中:多个压力机脚本分发、多组并行使用同一组压力机资源时依赖 jar 包冲突以及资源利用率不高等问题,进行了流程的管理和优化,让系统自动化代替人工,提高了测试人员的工作效率,降低压测成本。以前手工压测耗时,费力,成本高,主要有以下弊端:

  • 压力机资源利用率低;
  • 多台压力机手动部署压测环境、效率低,容易出错。
  • 准备测试时上传脚本,测试计划等数据文件,操作繁琐,浪费时间。
  • 压测时,需手动启动和关闭 jmeter 服务,效率低。
  • 压测结束后,手动初始化压力机环境,浪费时间,效率低。

分布式性能压测系统

平台系统解决方案

基于上述痛点问题,我们进行了总结和分析,然后提出了分布式性能压测平台的解决方案:

分布式性能压测系统

通过这个系统的流程图可以看出,这个系统分为三大模块:

  • 压力机模块:整合压力机,形成资源池,如果我想占用 100 台压力机,那可以直接在这个模块中选择 100 台机器,点击占用,这样这 100 台机器就会被标记,别人就不能用了,使用完了就释放,其他人看见了就是可以随时使用,这样就使得压力机资源得到了充分利用。同时可以批量操作压力机,提高效率
  • 任务管理:这个模块主要就是将脚本的分发批量化,将脚本一次性上传到 100 台压力机上只需要几分钟的时间就可以完成
  • 主控机控制:这部分主要负责压力测试的控制,比如批量上传测试计划,压测结果实时反馈,配置跳转测试参数,让测试人员可以掌控压测的整个过程,提高了测试的自动化水平。

这不仅解决传统压测中出现的痛点问题,同时也使压测变得流程化,降低了压测的难度,实现人人会压测。

系统架构

基于上述需求,设计了如下系统架构:

  • 应用层 面向用户,提供给用户一些功能性的按钮;
  • 业务逻辑层和数据访问层 保证压测流程正确,绑定每个测试任务的数据为压测提供数据支撑(比如需要 100 台机器压测,就在系统压力机管理中占用 100 台,这样这 100 台就标记成 “在使用”,别人无法占用)。
  • 代理层 是一个 agent,部署在每台压力机上,用来与应用层进行交互,传输命令等。这样就可以实现远程控制压力机进行脚本的传输以及压力测试

分布式性能压测系统

实际应用效果

本次双 11,本人负责压测某业务 19 个接口,从写接口,调试,到最后完成一轮压测只用了 3 天的时间就完成了,其中有一个 4kw 和一个 2kw 压力需求的接口!工作效率提高了近 80% 。

目前这个系统线上运行良好,已整合了分散在各业务线的几百台压力机,形成资源池按需分配,充分利用压力机的使用效率,以满足 618 及双十一备战集中压测的任务。并且有近百人多条业务线的同事使用此系统进行 618 和双 11 的压测任务。

说得多不如做得好,感兴趣的同学赶紧试用一下吧,点击“原文” (只限京东内网打开),外部测试伙伴如有需要,欢迎留言区洽谈…

分布式性能压测系统

分布式性能压测系统

分布式性能压测系统

评论

发布