做压测的12大误区

简介: 经验

这篇来讲压测,压测本质上其实就是经验的问题,至于技术我认为现在都是配套了,也有人配套的东西也搞不清,那还是经验的问题;提醒下,这篇对野路子玩压测的人蛮有用的。


一.误区首先讲误区,每个误区我会简单的总结下,对于需要拓展的,我会在第二部分如何有效压测中去具体描述。
误区1:性能测试就是从写脚本开始。

  • 最重要的是你能搞清楚为什么要压测,你这次的压测目的以及压测场景;
  • 写脚本只是你认为的干活的第一步,因为你其他所谓性能的需求分析没有思路或者也不清楚。
  • 直接写脚本并不是最科学的一步。


误区2:性能测试必须在功能测试之后。

  • 这是瀑布思维,大家都在聊测试左移,为什么性能测试不能左移呢?
  • 单元级的性能测试也是可以的,比如在方法层注入Benchmark,一般公司没有时间做单元级的,在接口现先行的情况下,可以先完成接口的基准性能测试。


误区3:性能测试要像功能测试一样覆盖更多的场景。

  • 性能测试更看重用户访问模型去筛选,做到有的放矢,并不是像功能一样全覆盖。
  • 不过目前行业都在推业务稳定性测试,在时间和资源允许的情况下,多场景覆盖也是有很大的作用。
  • 还是建议两者区分,做到核心目的快速实现。


误区4:提升硬件就能提升系统性能。

  • 对于造成性能瓶颈的原因很多,硬件这是其中一项,不加判断说通过加硬件提升性能可以说是技术门外汉。
  • 提升硬件性能并不一定能提升系统性能,比如你死锁了,死循环了,加硬件没用。


误区5:不切实际的性能指标。

  • 往往业务动辄给出百万并发这些词,这些实际上是需要去转化可测的性能测试指标。
  • 有些同学不了解转化过程,直接拿业务说的并发数去对比压测工具中的线程数,感觉不对但又不知道错在哪里。


误区6:线下压测没有意义

  • 这个蛮典型的,一部分同学在线下压测的结果比较差,去找开发,往往被开发打回,你的压测环境根线上相比差异太大,结果没意义。
  • 这个话表面上看是成立的,但其实这是在偷换概念,线下压测的目的并不是去对比线上的实际值,而是通过线下压测去发现基本性能问题,如慢方法,索引问题。死锁等。
  • 所以要有自己的独立思考,不要被开发带偏。


误区7:脚本里存在大量的逻辑

  • 核心逻辑完成即可。
  • 如if判断,通过逻辑插件很浪费性能,适得其反。


误区8:不参数化也能跑,就不用参数化。

  • 脚本能跑,但是场景不真实。
  • 能跑,返回200,只是你看的是皮子,皮子是一样的,里子不一样。
  • 压测数据不参数化,大量走缓存,和真实场景未必符合,这是里子。


误区9:脚本不加检查点或者过多检查点

  • 脚本不加检查点可能会导致性能压测中业务偏离。
  • 检查点过度会导致性能浪费,尤其是不能一边压测一边连接数据库做查询验证。


误区10:脚本一定要加集合点吗?

  • 搞清楚性能测试的访问模型,对于秒杀等场景可以添加集合点,验证超卖。
  • 对于一些预售类,查询类并不一定,要根据实际需求来。


误区11:瓶颈诊断先从服务端开始

  • 排查压测瓶颈首先确定自身发压没有瓶颈,包括压力发起的环境。
  • 你自己的笔记本?(这是胡搞)。
  • 你传递压力的带宽,办公室公用网络?(也是业余)。


误区12 :一定要做性能测试才能发现性能问题?

  • 这是个经验问题,并不需要一定做性能测试才能发现性能问题
  • 比如接口单次调用过慢,可以trace
  • 比如发现索引未添加,可以做执行计划
目录
相关文章
|
2月前
|
消息中间件 JavaScript 关系型数据库
如何开发一套ERP(离散制造-MTO)系统(附架构图+流程图+代码参考)
本文介绍了面向离散制造-MTO(按订单生产)模式的ERP系统设计与实现方法。内容涵盖ERP系统定义、总体架构设计、主要功能模块解析、关键业务流程(订单到交付、BOM展开、MRP逻辑、排产等)、开发技巧(DDD、微服务、事件驱动)、参考代码示例、部署上线注意事项及实施效果评估。旨在帮助企业与开发团队构建高效、灵活、可扩展的ERP系统,提升订单交付能力与客户满意度。
|
JavaScript 索引
利用身份证验证性别和获取生日
利用身份证验证性别和获取生日
|
运维 监控 Java
内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)
全网最全的内存溢出CPU占用过高排查文章,包含:问题出现现象+临时解决方案+复现问题+定位问题发生原因+优化代码+优化后进行压测,上线+复盘
3269 5
|
11月前
|
人工智能 自然语言处理 安全
新浪微博AIGC业务应用探索-AIGC应用平台助力业务提效实践
本次分享围绕AIGC技术在新浪微博的应用展开,涵盖四个部分。首先分析AIGC为微博带来的机遇与挑战,特别是在内容安全和模型幻觉等问题上的应对策略;其次介绍通过工程架构快速实现AIGC技术落地的方法,包括统一部署模型和服务编排;接着展示AIGC在微博的具体应用场景,如评论互动、视频总结和智能客服等;最后展望未来,探讨大模型的发展趋势及其在多模态和特定业务场景中的应用前景。
|
8月前
|
算法
重磅!2025年中科院预警期刊名单正式发布!
中国科学院文献情报中心定期发布《国际期刊预警名单》,旨在防范学术不端和不当出版行为。2025年最新名单聚焦两大问题:一是引用操纵、论文工厂等破坏科研生态的行为;二是中国作者占比过高或APC费用不合理,影响学术成果国际化传播。自2022年起,预警名单调整至年初发布,便于科研人员规划投稿。名单结合定量数据与专家评估,动态反映期刊风险。被列预警期刊可能影响职称评审及科研经费认可,建议优先选择中科院分区表推荐期刊,警惕快速代发陷阱,并关注期刊官网声明。未来,强化学术自律和技术工具应用将助力科研规范化,推动中国学术走向全球。
744 0
|
SQL Oracle 关系型数据库
SqlAlchemy 2.0 中文文档(五十八)(4)
SqlAlchemy 2.0 中文文档(五十八)
145 0
|
机器学习/深度学习 自然语言处理 数据可视化
BERT-IMDB电影评论情感分类实战:SwanLab可视化训练
这篇文章介绍了使用BERT模型进行IMDB电影评论情感分类的实战教程,涉及SwanLab、transformers和datasets库。作者提供了一键安装库的命令,并详细解释了每个库的作用。文章展示了如何加载BERT模型和IMDB数据集,以及如何利用SwanLab进行可视化训练。训练过程在SwanLab平台上进行,包括模型微调、指标记录和结果可视化。此外,还提供了完整代码、模型与数据集的下载链接,以及相关工具的GitHub仓库地址。
BERT-IMDB电影评论情感分类实战:SwanLab可视化训练
|
XML 存储 数据格式
RAG效果优化:高质量文档解析详解
本文关于如何将非结构化数据(如PDF和Word文档)转换为结构化数据,以便于RAG(Retrieval-Augmented Generation)系统使用。
1133 11
|
Docker Python 容器
5 分钟,教你用 Docker 部署一个 Python 应用!
5 分钟,教你用 Docker 部署一个 Python 应用!
1177 0
|
编解码 人工智能 语音技术
GPT-SoVits:刚上线两天就获得了1.4k star的开源声音克隆项目!效果炸裂的跨语言音色克隆模型!
GPT-SoVits:刚上线两天就获得了1.4k star的开源声音克隆项目!效果炸裂的跨语言音色克隆模型!
1583 3