9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

分布式性能压测系统

  • 2020-03-25
  • 本文字数:1100 字

    阅读完需:约 4 分钟

分布式性能压测系统

平台简介和痛点

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


  • 压力机资源利用率低;

  • 多台压力机手动部署压测环境、效率低,容易出错。

  • 准备测试时上传脚本,测试计划等数据文件,操作繁琐,浪费时间。

  • 压测时,需手动启动和关闭 jmeter 服务,效率低。

  • 压测结束后,手动初始化压力机环境,浪费时间,效率低。


平台系统解决方案

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



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


  • 压力机模块:整合压力机,形成资源池,如果我想占用 100 台压力机,那可以直接在这个模块中选择 100 台机器,点击占用,这样这 100 台机器就会被标记,别人就不能用了,使用完了就释放,其他人看见了就是可以随时使用,这样就使得压力机资源得到了充分利用。同时可以批量操作压力机,提高效率

  • 任务管理:这个模块主要就是将脚本的分发批量化,将脚本一次性上传到 100 台压力机上只需要几分钟的时间就可以完成

  • 主控机控制:这部分主要负责压力测试的控制,比如批量上传测试计划,压测结果实时反馈,配置跳转测试参数,让测试人员可以掌控压测的整个过程,提高了测试的自动化水平。


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

系统架构

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


  • 应用层 面向用户,提供给用户一些功能性的按钮;

  • 业务逻辑层和数据访问层 保证压测流程正确,绑定每个测试任务的数据为压测提供数据支撑(比如需要 100 台机器压测,就在系统压力机管理中占用 100 台,这样这 100 台就标记成 “在使用”,别人无法占用)。

  • 代理层 是一个 agent,部署在每台压力机上,用来与应用层进行交互,传输命令等。这样就可以实现远程控制压力机进行脚本的传输以及压力测试


实际应用效果

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


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


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





活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2020-03-25 19:481150

评论 1 条评论

发布
用户头像
请问分布式压测,带宽瓶颈如何解决的?
2022-03-17 21:35
回复
没有更多了
发现更多内容

Java: 压缩PDF文档

Geek_249eec

Java PDF 压缩

重磅发布!Orbit 云原生应用全生命周期管理工具上线啦!

CODING DevOps

云原生 Orbit CODING

还不知道产品帮助中心怎样制作?,来看看这个吧

Baklib

产品的帮助中心怎么建设?关于编辑帮助文档的几个小技巧~

Baklib

大数据开发应用场景解读

Jackchang234987

大数据 数据开发

安利几款简单好用的帮助文档制作工具

Baklib

帮助文档

无线网络安全技术中的王牌标准:WPA到底是个什么东东?解决了什么问题?

wljslmz

网络安全 无线技术 9月月更 WAP

工业4.0时代IIoT存储面临哪些挑战

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

国庆数字游,融云都为您准备好了

融云 RongCloud

分享|破世界纪录的OceanBase,如今入选了国际顶会VLDB 2022

OceanBase 数据库

面试官问我 JS 中 foreach 能不能跳出循环

茶无味的一天

JavaScript js foreach for

GPU是AI时代的算力核心

Finovy Cloud

人工智能 云渲染

打破线上社交“不可能三角”,语音社交可以做到既要、又要、还要

擎声科技

音视频 sdk 语音社交 实时互动 擎声Qtt

OptaPlanner场景和示例

成长兔🐇

zookeeper集群之间如何通讯

浅羽技术

zookeeper 通信 集群 ZooKeeper原理 9月月更

【译】日志:每个软件工程师都应该了解实时数据的统一抽象【三】

Rae

kafka 日志 原理

好的代码是优质资产、莫让代码成为负债

葡萄城技术团队

还在为产品的客户服务而烦恼?来搭建在线客服中心!

Baklib

Databricks Data Science&Engineering模块介绍

Jackchang234987

大数据 数据产品经理 数据产品 大数据开发 Databricks

NFTScan 与 PANews 在 NFT 数据层面进行战略合作

NFT Research

API NFT 合作 MetaMask

字符串哈希

留白的艺术

第56届世乒赛团体赛开幕!三思近900㎡ LED显示点燃赛事激情

电子信息发烧客

leetcode 513. Find Bottom Left Tree Value 找树左下角的值 (简单)

okokabcd

LeetCode 数据结构与算法

使用WIX 进行商业智能OEM打包

葡萄城技术团队

基于边缘计算的渲染新应用

火山引擎边缘云

边缘计算 渲染 边缘云 渲染性能 渲染服务

新品速递|海泰边缘安全网关护航工控数据采集

电子信息发烧客

微信架构图

Johnny

#架构实战营

葡萄城受邀参加WOT全球技术创新大会

葡萄城技术团队

iMazing传输 iPhone 备忘录和通话记录功能

淋雨

ios iphone

给你一本武林秘籍,和KeeWiDB一起登顶高性能

腾讯云数据库

redis 腾讯云 NoSQL 数据库 腾讯云数据库 KeeWiDB

Alluxio与北京大学计算机学院签署合作框架协议,推动产学研深度融合

Alluxio

开源 云原生 产学研用 Alluxio 北京大学

  • 扫码添加小助手
    领取最新资料包
分布式性能压测系统_文化 & 方法_京东数字科技产业AI中心_InfoQ精选文章