性能测试学习随笔
一、策略
C/S架构:更关注系统资源使用情况,数据库性能以及运行的配置要求,例如内存,用户连接数,数据库死锁,数据库cache命中率,运行的最低配置等
B/S架构:会关注Web服务器的相关指标,例如每秒点击数,吞吐量,测试连接数,事物成功率等
二、性能测试的目的
1.评估当前系统
2.寻找瓶颈,优化性能
3.预测未来性能
三、性能测试分类:
1.基准测试:
基准测试最简单的理解就是有基础的标准,这样能通过对比发现系统的不同点月变化,一般情况下,记住测试有以下几种应用场景:
1)可以在制定的标准下通过基准测试建立一个性能标准,这样以后党系统的环境,参数发生变化之后,再进行一次相同标准下的测试,即可看出变化对性能影响
2)系统基准测试可以在较早的阶段发现性能问题
3)某系统从来没有进行过任何性能测试,需要对系统做一次性能评估作为后续开发调优的参考。
2.并发测试
并发测试可以理解为很多的用户按照预定的场景并发请求某个业务或功能时是否出现并发问题,如内存泄漏,线程锁,资源争用等。
3.负载测试
主要目的时验证业务或系统在给定负载条件下的处理性能,此外还要关注响应时间,每秒通过的事务数和其他相关指标。负载测试是为了发现性能问题,性能测试是为了获取性能指标。
4.压力测试
压力测试可以理解为没有预期的性能指标,不断地加压,看系统什么时候奔溃,以此来确定系统的瓶颈或者不能接受的性能拐点,以获得系统的最佳并发数,最大并发数。压力测试可以更快的发现内存泄漏问题,还可以更快的发现影响系统稳定性的问题。
5.稳定性测试
稳定性测试顾名思义重点在于“稳定”二字,要想知道系统稳定的情况,就需要长时间运行,在这段时间内观察系统的出错几率,性能变化趋势等。进而减少系统上线后奔溃等现象。一般都会进行7*24小时的稳定性测试。
稳定性测试需要强调以下两点:
1)一般需要在系统成型后进行,并且没有严重的bug存在
2)场景的设计以模拟真实用户的实际操作为佳
6.失效恢复测试
失效恢复测试重点在关注出现问题后能否根据预先制定的策略恢复,且恢复后能否正常运行。
失效测试一半是对具有负载均衡的系统进行的,主要是为了测试当系统局部发生故障时是否会对全局产生大的影响,产生的影响是否在抗议接受的范围,以及用户能否继续使用系统。
7.现网性能测试
所谓现网性能测试就是在实际网络,实际环境中进行测试,完全和真实用户一样。当然这样的测试也有一定的风险,需要注意以下几点:
1)时间段的选择。尽量避开高峰期,选择半夜或者凌晨,以免影响正常用户
2)垃圾数据处理
3)网络限制。为了避免网络限制(大数据量时路由拦截数据请求或者网络带宽限制),压力机需要和被测服务器部署在同一网段机房内。

浙公网安备 33010602011771号