1.性能测试(Performance Test)
性能测试就是对软件的运行性能指标进行测试,判断系统集成之后在实际的使用环境下能否稳定、可靠地运行。
2.强度测试
强度测试也称压力测试(Stress Test)、负载测试(Load Test)。强度测试是要破坏程序,检测正常情况下系统的负载能力,也就是检查系统能力的最高实际限度。强度测试模拟实际情况下软/硬件环境和用户使用过程的系统负荷,长时间或超负荷地运行测试软件来测试系统,以检验系统能力的最高限度,从而了解系统的可靠性、稳定性等。例如:将输入的数据值提高一个或几个数量级来测试输入功能的响应等。
二、特点1.性能测试
该方法通过模拟生产运行的业务压力量和使用场景组合测试性能是否能够满足需要。具备三个特点:
①这种方法的目的是验证系统是否具有系统宣称具有的能力。
②这种方法需要事先了解被测试系统典型场景、并确定性能目标。
③这种方法要求在已确定的环境下运行
2.负载测试
用来测定系统饱和状态、确定阀值。其特点有:
①这种方法的目的是找到系统处理能力的极限;通过“检测、加压、阀值”手段找到,如:“响应时间不超过10秒”,“服务器平均CPU利用率低于65%”等指标。
②这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,另外HP Mercury LoadRuner在使用该方法进行“加压”的时候必须选择典型场景。
③这种性能测试方法一般用来了解系统的性能容量,或者是配合性能调优的时候来使用。
3.压力测试
该方法测试目标系统在一定饱和状态下,例如CPU、内存等在饱和状态下、系统能够处理的session的能力,以及系统是否会出现错误。该方法需要在系统cache调优与pool优化方面着手。该方法具备以下特点:
①该方法的目的是检查系统处于压力情况下的,应用的表现。如增加VU数量、节点数量、并发用户数量等使应用系统的资源使用保持一定的水平,这种方法的主要目的是检验此时的应用表现,重点在于有无错误信息产生,系统对应用的响应时间等。
②该方法通过模拟负载在实现压力。这种模拟需要考虑的层面很多、首先、模拟必须是有效的,我的经验是需要结合业务系统和软件架构来定制模拟指标、我 测试过一些国内生产的压力测试工具、他们使用通用的指标来考量、造成很多信息反馈有很大的水分。需要考虑的层面如:Oracle I/O、JVM GC、Conn Pool等。
③该方法还可以测试系统的稳定性。
三、区别1.性能测试:为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据
2.强度测试:为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等
四、案例可能大家对性能测试、负载测试和强度测试比较混淆。没错,这三个概念是比较容易使人糊涂。负载测试和强度测试,都属于性能测试的子集。下面举个跑步的例子进行解释。
性能测试:表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间(这边,没有负重是基准)?
负载测试:也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间?
强度测试:是在强度情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?
所以,可以看出性能测试是动力,负载测试载重,压力测试强度



