性能测试、压力测试、负载测试、容量测试的区别

性能测试(Performance Test)

通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。 性能测试是一种“正常”测试,主要测试使用时系统是否满足要求,同时可能为了保留系统的扩展空间而进行的一些稍稍超过“正常”范围的测试(比如:当前系统使用用户100人,可能未来人数会增多到300人,所以要让系统能够在300人情况下正常运行)

(1)是系统测试的一种,属于黑盒测试。

(2)是在一定软硬件网络情况下,系统响应时间等特性是否满足需求。

(3)给定的基准条件下,能执行的最好情况。

(4)性能测试是动力

压力测试(Stress Test)

压力测试的目标是测试在一定的负载下系统长时间运行的稳定性,但是这个负载不一定是应用系统本身造成的。比如我们经常利用脚本或工具事先吃掉服务器的一部分cpu、内存或带宽等,创造出一定的负载环境并测试被测应用系统在此环境下的事物处理能力,响应时间等等。压力测试尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复)。

(1)大量虚拟用户向服务器产生负载,使服务器资源处于极限状态下并长时间运行,服务器是否能够正常工作。

(2)它强调的是极端情况下系统的稳定性。

(3)分为稳定性压力测试和破坏性压力测试

(4)压力测试是强度

负载测试(load test)

(1)数据在超负荷环境中运行,程序是否能够承载。强调的是达到的峰值指标。

(2)关注点是how much ,how fast (是载重)

(3)不同负载下的性能指标,从小负载开始,逐步增加用户数量,观察不同负载下系统所耗资源、响应时间。

容量测试(volume test)

(1)一定的虚拟用户数运行一种或多种业务,获取不同级别服务器性能指标,已确定数据库的最佳容量和最大容量。

(2)它关注的是how much,通常和数据库有关。

压力测试stress test:是在一定的『负荷条件』下,长时间连续运行系统给系统性能造成的影响。 
负载测试Load test:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。

        负载测试通常描述一种特定类型的压力测试——逐步增加用户数量或用户请求来对系统(程序)进行加压。比如现实中有个系统提供在线查询服务,那我们从比较小的负载开始,逐渐增加模拟查询请求的数量或用户量, 直到系统响应时间超时,就是说的负载测试。这儿加压的类型必须是应用提供的服务类型,也就是工作负荷。
   负载测试的目标是测试在一定负载情况下的系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。
   压力测试的目标是测试在一定的负载下系统长时间运行的稳定性,但是这个负载不一定是应用系统本身造成的。比如我们经常利用脚本或工具事先吃掉服务器的一部分cpu、内存或带宽等,创造出一定的负载环境并测试被测应用系统在此环境下的事物处理能力,响应时间等等。压力测试尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复);压力测试是测试系统的限制和故障恢复能力,它包括两种情况:
   1.稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;
   2.破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来;
  如果还不理解的话,打个比喻:
  这儿有个服务员,对应咱们的应用系统吧。  
 压力测试就是给这位服务器外部压力,比如长时间不让他休息,不给开工资等,看看服务员会不会开小差(无法及时响应请求),或者罢工(宕机)之类的。
   负载测试就是在单位时间内逐步加大这位服务员的工作量,看看此服务员在不同的工作量下完成服务的速度和质量,从而了解到该服务员的工作能力。
   压力测试和负载测试能够帮组我们了解到一个服务器的抗压能力和工作能力,当然也能帮我们评估一个系统或软件的性能瓶颈与质量。

 

你可能感兴趣的:(性能测试)