按照Ron Patton在其《Software Testing》一书中的定义,压力测试是一种破坏性测试,
它故意让软件在比较少的资源环境下运行,如低内存、小硬盘、慢CPU上运行,考验程序直至程序无法运行,从而发现软件缺陷。
用一句形象的话来比喻,就是让软件在饥饿状态上运行。
很多人误将负载测试和压力测试混为一谈,认为给程序的负载大,程序经受的压力就大。
其实不然,负载测试考验的是系统的吞吐量,假如一个网站号称能经受100万个用户同时访问,那么就想方设法模拟出100万个用户对网站发起连接,观察服务器能否正常作出反应。
一般地,负载测试是给被测的系统“喂饱”,看看它能否吞下去,系统为了能吞下大的输入,常常在内部机制上下工夫,或者扩大服务器的配置。
负载测试是尽量增加对系统的访问,而压力测试是尽量使系统在资源稀缺的环境下运行。二者区别很大。但不排斥两个技术同时使用。