压测实战 | 记录一次元旦跨年夜的测试保障实践

在互联网多媒体时代,图片、视频等类型的应用越来越丰富,一些特殊时刻,会有海量用户同时发布多媒体内容。以大家熟知的一个社交类应用为例,因其社交性、高并发、瞬时峰值的特点,在元旦零点前后的跨年时刻,读/写流量可达平日的 10 至 20 倍,迎来全年巅峰。今天,我们就来复盘解析这个实战案例,为大家详细说明优测一站式测试平台如何支持社交媒体图片类型的全方位压测。

项目背景

前面提到的社交软件,其元旦和春节期间读链路和写链路分不同会数倍的流量飙升。其中,针对只读链路可以通过集群流量调度做到读链路的压测,但是写链路的压测由于测试数据构造复杂,用例编写成本高,是一个亟待解决的问题。 在施行元旦稳定性保障计划中,我们需要对写链路进行大规模、全方位的压测,以期达成如下目标:

  • 验证:在特定压力状况下,系统可用性、稳定性是否符合预期;
  • 暴露:在高压乃至过载的状况下,暴露业务 bug、系统瓶颈、及稳定性保障策略的不合理之处;
  • 优化:对所暴露问题进行定位和解决,然后继续迭代,直至符合预期。

压测目标

在这次任务中,业务链路压测的特点是请求链路较短,只涉及两个请求,而难点则集中在以下方面:

  • 协议多、包含 HTTP、RPC以及其它私有协议;
  • 业务是多地分布的,需支持分布式、多地域压测流量定制;
  • 模拟跨年零点,流量大、时间集中,需快速拉起大规模用户进行写操作;
  • 需支持请求上下文参数动态串联,模拟用户登录后,以登录态进行后续操作;
  • 需支持自定义数据处理,在脚本逻辑里对测试数据进行清洗;
  • 除了文字内容,还需模拟图片内容的发表,并保证带图发压也能瞬时达峰;
  • 需能设置检查点,根据接口返回值,按照业务逻辑检查接口调用成功与否;
  • 元旦保障时间紧任务重,压测工具需能开箱即用、快速编排场景、易于分析结果。

压测方法

在工具侧的选择上,优测压测工具提供SaaS 化、多地域、开箱即用、百万并发、多协议支持、兼容原生 JMeter 等能力。基于该工具,我们开展的实施方法如下:

1. 选择创建模式,本次压测采用脚本模式; 图片1

2. 上传包含相关测试数据的 csv 文件,并设置切分文件由不同施压机并行读取;

3. 上传所依赖的协议文件;

4. 上传被测接口所需的图片文件;

5. 施压配置并发、多地域流量定制、梯度发压; 图片2

6. 参考平台提供的脚本模板,编写请求链路,并借助协议支持、数据处理等API,完成脚本逻辑;

7. 借助平台设置检查点的API,检查接口返回值,按业务逻辑判断接口调用成功与否。 图片3

结果分析

在2天内我们共进行了8 轮次压测,逐步增加压力、增大地域覆盖。通过压测平台提供的指标数值、多维度图表、服务明细、检查点明细、日志等信息,分析系统在不同压力程度下的错误率、延时等性能表现,并结合业务自身监控指标的变化,判断业务的可用性和稳定性是否达到预期、或反映出哪些需要解决的问题。

在压测报告中,我们重点关注的指标如下:

  • VU:虚拟用户数,用来模拟真实场景中同时执行操作的用户数量,也叫“并发用户数”
  • RPS:每秒请求数,反映系统处理能力,越大越好
  • 相应时间:从客户端发送请求到客户端接到服务器返回的时间
  • 失败率:一批请求中结果出错的请求所占比例,以校验响应结果是否符合期望

经过多轮次压测和迭代的过程,将发现的问题及时修复解决,最终业务团队平稳地迎接跨年巅峰流量。

压测报告界面(演示数据):

结语

通过此次压测合作实践,优测助力业务团队完成了元旦压测目标,为平稳迎接跨年巅峰流量保驾护航。伴随每一次项目经历,优测不断积累业务经验并反哺平台的基础能力。

邀您体验

优测云服务平台是腾讯旗下的一站式测试服务平台。若您有压力测试相关的需求,欢迎免费试用SaaS版,体验一个灵活、好用、且在不断进化中的全新压测平台!


本文未注明其它来源的内容,其版权归优测云服务平台所有,未经允许不得转载本文内容。如需转载本文,请在显著位置注明出处(优测云服务平台,以及文章链接:https://utest.21kunpeng.com/home/topic/202501