基准测试 (Performance Benchmark Test)

概念

1) 每次对外发布产品版本前必须要完成的测试类型
2) 执行固定的性能测试场景得到系统的性能测试报告
3) 与上一版本发布时的基准测试结果进行对比
4) 优化 or 恶化 ?

测试目的

(1) 获取系统性能基准作为参照物
(2) 识别系统或环境的配置变更对性能带来的影响
(3) 给系统优化前后的性能提升/下降提供参考标准
(4) 观察系统的整体性能趋势与性能拐点,识别系统性能风险

基准评估

同一事务的响应时间变慢了
上一版本中,用户登录的响应时间是 2s,在最新的被测版本中这个响应时间变成了 4s;
系统资源的占用率变高了
上一版本中,平均 CPU 占用率是 15%,在最新的被测版本中平均 CPU 占用率变成了 30%;
等等。。。。

负载测试

测试目的

1) 持续稳定地增加系统的负载,测试系统性能的变化
2) 找出指标阈值下的系统瓶颈和性能拐点
3) 测试系统所能承受的最大负载量
4) 找出内存管理错误,内存泄漏,缓冲区溢出的问题
5) 找到处理极限,为调优提供数据
6) 找出系统在稳定情况下的最大压力值

测试意义

通过改变负载方式、增加负载,发现系统中所存在的性能问题

实例

(1) 200 个并发用户访问时的最大响应时间,最大吞吐量
(2) 21 个小时内要处理 1000 笔业务,找到最大并发数
(3) 响应时间不超过 10s 的最大负载
(4) cpu 利用率不高于 60% 下的最大并发数

压力测试

测试目的

1) 测试系统的资源在饱和状态下的应用的处理会话能力
2) 持续稳定的增加系统压力,测试系统性能的变化
3) 破坏性测试,确保系统失败并能正常恢复
4) 发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患
5) 关注大业务量情况系统的长时间运行状态(例如反应变慢、内存泄漏 系统崩溃、失效恢复)
6) 找出系统在可控错误率下的最大压力值

稳定性压力测试 (可靠测试)

(1) 长时间运行(7*24 小时)模拟被测系统的测试负载
(2) 观察系统在长期运行过程中是否有潜在的问题
(3) 对系统指标进行监控,发现长期运行时的内存泄漏、资源非法占用等问题

破坏性压力测试

1) 不断加压,直至系统崩溃
2) 测试系统的最大承受能力
3) 通过破坏性加压的手段,快速造成系统的崩溃或让问题明显的暴露出来
阶梯式压力测试
(1) 逐渐增加测试负载,如每 5s 钟增加 100 个并发数
(2) 高负载情况下持续运行一段时间,然后再逐渐降低负载
(3) 构成一个梯级的测试场景

Spike 测试

概述
尖峰测试(Spike testing)在性能测试中属于压力测试的一个子集。指的是在某一瞬间或者多个频次下用户数和压力陡然增加的场景。
为了验证我们的网站在访问用户急剧增加的情况下,或者短时间内反复急剧增加工作负载时能否正常工作;以及程序能否从高负荷中恢复并正常工作时常常用到这种测试手法。
Spike 在英文中是钉子的意思,或者我们可以将其称之为冲击测试,反复冲击服务器。

常见的场景有
12306 开始售票时访问用户急剧增加
网站公布高考成绩、录取分数时,访问用户急剧增加
网站投放商业促销广告和促销活动,如双 11 和 618 等活动开始时,访问用户急剧增加
等等。。。。


↙↙↙阅读原文可查看相关链接,并与作者交流