目录:导读
前言
什么是性能测试?
用工具模拟实际并发场景,发现系统问题,使系统上线后在接近的用户场景下不死。
工程解释:
性能测试是针对系统的性能指标,建⽴性能测试模型,制定性能测试⽅案,制定监控策略,在场景条件之下执⾏性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满⾜既定值。
你在工作中经常做得三件事?也叫性能测试的价值
分类:
1)性能验证:针对给定的指标,只做性能验证
2)性能测试:针对给定的系统做全面的性能测试,可以得到系
统的最大容量,但不涉及到调优 –-旧系统保证系统不衰减
3)性能测试+性能调优:针对给定的系统做全面的性能测试,
同时将系统调整到“最优”状态
意义:
验证系统上线之后是否可以稳定运行 第一层的含义
给出开发和运维人员提出线上的配置建议 第二层的含义
在满足业务要求的前提下,可以节省资源 第三层的含义
让你压几百,你就压,压了500个没有崩溃这种方法叫性能验证 一般性能都这么测试 。
10000 并发正常,40000万开始增加,50000并发满了 ,最大6万就崩了 一般的性能测试 。
一边压测,一边调整,各方面配置都很优秀,这就是性能调优的过程。
性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件下执行性能场景,分析判断性能瓶颈并且调优,最终得出性能结果来评估系统的性能指标是否满足既定值。
性能测试需要有指标:
对应"有指标"这个定义来说,理论上合理的,并且应该有的指标是:时间指标,容量指标,资源利用率指标。
但是这些指标还可以再进行细分…
性能测试需要有模型:
模型是什么?它是真实场景的抽象。
比如说,我们有 100 种业务,但不是每个业务都需要有并发量,可能只有 50 个业务有,那就要把这些有并发的业务统计出来,哪个业务并发多,哪个业务并发少,做压力时就要控制好这样的比例。
其实就是我们需要挑选出来需要并发的业务,还要区分这些业务各自的并发是多少,有不同的并发比例。这些数据最好都是从生产环境获取。
性能测试要有方案:
一个方案中包含着:测试环境、测试数据、测试模型、性能指标、压力策略、准入准出和进度风险这些关键点。
性能测试中要有监控:
这个部分的监控,要有分层、分段的能力,要有全局监控、定向监控的能力
性能测试要有预定的条件:
这里的条件包括软硬件环境、测试数据、测试执行策略、压力补偿等内容 ,在场景执行之前,这些条件应该是确定的。
关于动态扩展,也是有确定的策略的,比如说CPU 使用率达到 80% 或 I/O 响应时间达到 10ms 时,就做动态扩展。
性能测试中要有场景:
对性能场景中的“场景”比较正宗的描述是:在既定的环境(包括动态扩展等策略)、既定的数据(包括场景执行中的数据变化)、既定的执行策略、既定的监控之下,执行性能脚本,同时观察系统各层级的性能状态参数变化,并实时判断分析场景是否符合预期。这才是真正的场景全貌。
性能场景也要有分类:
基准性能场景:这里要做的是单交易的容量,为混合容量做准备(不要跟我说上几个线程跑三五遍脚本叫基准测试,那只是场景执行之前的预执行,用来确定有没有基本的脚本和场景设计问题,不能称之为一个分类)。
容量性能场景:这一环节必然是最核心的性能执行部分。根据业务复杂度的不同,这部分的场景会设计出很多个
稳定性性能场景:稳定性测试必然是性能场景的一个分类。只是现在在实际的项目中,稳定性测试基本没和生产一致过。
在稳定性测试中,显然最核心的元素是时间(业务模型已经在容量场景中确定了),而时间的设置应该来自于运维周期,而不是来自于老板、产品和架构等这些人的心理安全感
异常性能场景:要做异常性能场景,前提就是要有压力。在压力流量之下,模拟异常。这个异常的定义是很宽泛的
性能测试中要有分析调优:
就要不要进行调优做了如下划分
新系统性能测试类:这样的项目一般都会要求测试出系统的最大容量,不然上线心里没底。
旧系统新版本性能测试类:这样的项目一般都是和旧版本对比,只要性能不下降就可以根据历史数据推算容量,对调优要求一般都不大。
新系统性能测试优化类:这类的系统不仅要测试出最大容量,还要求调优到最好
对性能团队的职责定位有如下几种。
性能验证:针对给定的指标,只做性能验证。第三方测试机构基本上都是这样做的。
性能测试:针对给定的系统,做全面的性能测试,可以得到系统最大容量,但不涉及到调优。
性能测试 + 分析调优:针对给定的系统,做全面的性能测试,同时将系统调优到最优状态。
当只能做性能验证的团队遇到旧系统新版本性能测试类和新系统性能测试优化类项目,那就会很吃力,这样的团队只能做新系统性能测试类项目。
当做性能测试的团队,遇到需要新系统性能测试优化类项目,照样很吃力。这样的团队能做前两种项目。
只有第三个团队才能做第三种项目。
性能测试肯定要有结果报告:
性能结果如何来定义呢?有了前面监控的定义,有了场景执行的过程,产生的数据就要整理到结果报告中了。
这个文档工作也是很重要的,是体现性能团队是否专业的一个重要方面。并不是整理一个 Word,美化一下格式就可以了。
测试报告是需要汇报或者归档的。
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最动人的风景,往往藏在最险峻的山巅。当你觉得力竭时,请记住:每一次坚持都在重塑更强大的自己。别问路有多远,只管迈步向前;别怕山有多高,向上攀登就是答案!
你体内沉睡着改变世界的力量!每个清晨都是改写命运的新机会,每次挫折都是精心包装的礼物。当全世界都在说"不可能"时,正是你证明"可能"的最好时机!