文章目录
什么是性能测试
性能测试针对系统的性能指标,建立性能测试模型,指定性能测试方案,指定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。
性能指标
测试模型
模型是什么?是真实场景的抽象。比如说 100 种业务,每种的测试要求不一样,比如50个需要对并发量有要求,那就需要有并发的业务来统计,做压力的时候控制好比例。
索然现在可以在线上导流来做性能测试。但并不说明性能测试不需要模型了。
测试种要有监控
这个部分的监控要有分层、分段的能力,要有全局监控、定向监控能力。
有预定条件
包括硬件环境、测试数据、测试执行策略、压力补偿等内容。就是场景执行前这些条件是确定的。虽然在压力种也会动态扩展,但是动态扩展的条件或者判断也有确定的策略。比如判断 CPU 使用率达到了 80% 或 I/O 响应时间达到了 10 ms 时,就做动态扩展,这些是预定的条件。
性能测试中要有场景
在在既定的环境(包括动态扩展等策略)、既定的数据(包括场景执行中的数据变化)、既定的执行策略、既定的监控之下,执行性能脚本,同时观察系统各层级的性能状态参数变化,并实时判断分析场景是否符合预期
性能场景也要有分类:
- 基准性能场景:这里要做的是单交易的容量,为混合容量做准备(而上几个线
程跑三五遍脚本叫基准测试,那只是场景执行之前的预执行,用来确定有没有基本的脚本和场景设计问题,不能称之为一个分类) - 容量性能场景:这一环节必然是最核心的性能执行部分。根据业务复杂度的不同,这部
分的场景会设计出很多个 - 稳定性性能场景:稳定性测试必然是性能场景的一个分类。只是现在在实际的项目中,
稳定性测试基本没和生产一致过。在稳定性测试中,显然最核心的元素是时间(业务模
型已经在容量场景中确定了),而时间的设置应该来自于运维周期,而不是来自于老
板、产品和架构等这些人的心理安全感。 - 异常性能场景:要做异常性能场景,前提就是要有压力。在压力流量之下,模拟异常。
这个异常的定义是很宽泛的。
为了理解这个划分可以看下图
另外注意场景和测试用例,内容是很大的偏差,这不能把用例限定在了描述测试脚本和测试
数据上,并没有描述需要实时的判断和动态的分析。这就严重影响了下一个概念:性能结
果。
性能测试中有分析调优
要不要调优是值得考虑的问题,因为加入调优部