测试管理 某节日大促 - 性能测试保障

feidou1113 · 2023年09月08日 · 最后由 差班生 回复于 2023年09月13日 · 9117 次阅读

XXX 节日大促稳定性保障

今天来一段性能测试知识总结,从去年接手性能测试以来,本年度某节日大促保障活动准备第三轮开启了。

压测资源

  • 压测工具: Jemeter
  • 压测环境: 压测机, 监控 (grafana)

压测指标

  • Tps(avg/max)
  • 请求总量/响应时间
  • 虚拟用户数

系统资源

  • 了解服务所在容器的 cpu,内存规格,主机的配置
  • 了解数据库的当前配置和规格;
  • 了解网络的当前最大进出流量;
  • 了解中间件 nginx, mq,redis;
  • 了解前端/后端服务的分布;

压测流程标准化 (老图)

压测需求:

  • 大促压测立项
  • 历年业务数据对比/同比
  • 技术指标
  • 压测场景更新
  • 业务场景、系统和网络资源风险和预案

场景准备:

  • 大促业务占比估算
  • 压测脚本管理和更新
    • 采用 idea+git 管理,管理所有的生产和测试脚本;
    • 采用手工上传;

目前单接口脚本支持自动生成

  • 压测数据管理:
    • 生产假数据和数据文件准备;
    • 数据的转加密;
    • 业务数据有效性 check;
  • 资源配置;

压测执行:

  • 压测环境初始化;
    • 在线启动压测机
    • 手工 jmeter 服务,启动成功后发送消息通知;
    • 业务配置检查;
  • 压测定时执行;
    • 预执行调试脚本,检测压测环境正常;
    • 配置定时压测场景脚本;
    • 执行完毕后,发送压测报告链接和消息通知;

压测报告:

  • 压测问题定位及跟进
  • 测报告整理

大促压测频率

  • 3-5 次核心场景大促压测;
  • 针对部分特殊场景补充压测;

大促压测当天情况

  • 项目 Owner, 技术、业务、运维 - 负责人到位;
  • 前一天和当天同步注意事项和产线应急预案;
  • 监控: 流量监控、报警监控、资源和数据库监控;

大促压测总结

  • ppt 总结 - 整个压测过程总结

糗事:

  • 删除过生产压测脚本,幸亏 git 有备份;
  • 预执行未 check,导致压测脚本执行失败;
  • 生产压测数据清理脚本不严谨,导致数据库出现锁;

经过多次压测,发现有很多基础设施和工具不完善:

  • 系统容量评估
  • 压测场景更新和管理在线化;

整个大促压测,不仅考验压测专业技能,还要压测活动事前事后跟进,必须成为一个多面手,不过想成为项目 Owner,还需继续加强锻炼!😰 😰

以上为本次为一些工作笔记,有兴趣可以一起讨论:+wx: feidou1113

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复 时间 点赞

生产直接压测,不会对其他业务有影响吗?

2楼 已删除
差班生 回复

生产压测一般选择在流量低峰时间段去搞(比如凌晨大半夜),再考虑上数据、消息、日志等隔离避免污染线上,只要限制做到位,其实不会有明显影响。

具体分析下指标,说说具体咋测。学习学习

大哥, 想了解实现的压测场景, 能否详细阐述.

王稀饭 回复

多多少少都会有点影响吧,而且限制就要做很多兼容的实现,觉得还是单独的压测环境比较好点。

差班生 回复

整个流程在,通过请求数据数据, 压测日志有定期归档,消息会屏蔽。考虑生产压测与真实用户场景使用要保持一致。单独的压测环境,应该是单节点的,只能压测场景单一的场景

Ellison 回复

压测指标应该都能搜到,应该主要考虑的是压测的依据,模型,环境,压测脚本的准备,比较综合的内容

差班生 回复

影响是有的,主要风险是否可控。

假设是一个亿级日活的产品,如果压测只是影响个位数或百位数的用户很短暂的使用体验(比如稍微服务端卡几分钟),那大概率收益大于损失,在风险可控的前提下可能会这么去做,甚至往往对线上根本就无实际影响。(我这个假设不一定合理,意思上就差不多这样)

单独的压测环境也是可以的,看具体情况。如果线上环境本身部署起来就不复杂,确实可以单独做压测环境。但如果业务体量足够大的话,部署压测环境对齐线上的成本、压测环境机器资源的开销,都是不得不考虑的。

王稀饭 回复

亿级的访问量,短暂的几分钟,影响不止百位数吧。当然也和实际公司的业务有关系。每个公司都不一样。我们公司上次两分钟,大几万的请求失败😂

王稀饭 回复

开销确实高,所以我们都是按系数去评估的。一般不会全模拟 pro 环境的。

feidou1113 回复

我们公司会按照等比例的机器,进行模拟 pro 环境。要区分压测场景不同吧,比如要压测瓶颈。

差班生 回复

所以就要挑时间压测了,只能选择业务流量低峰。举个例子就是凌晨两三点的,这时候线上没什么流量,大把线上机器资源空闲,你怎么压都不至于把资源打满到影响用户体验的级别😂

王稀饭 回复

也是。很尴尬,我们的业务特性基本没有低峰😂

差班生 回复

这…… 确实尴尬,业务类型这么特殊的吗

王稀饭 回复

嗯。我们接口有提供给外部的。

差班生 回复

有些会弄影子流量

sir 回复

是的。之前还有需求,现在都是降本增效,搞不懂动啦

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册