性能测试(Performance Test)包含以下测试类型
压力测试、负载测试、强度测试、数据库容量测试、预期指标的性能测试、独立业务性能测试、组合业务性能测试、疲劳强度性能测试、网络性能测试、大数据量测试、服务器性能测试、一些特殊的测试。
调整性能最好的办法就是软硬件相结合。
性能测试的目的是在软件功能良好的前提下,发现系统瓶颈并解决。
1、压力测试(Stress Test)
A)进行压力测试是指实际破坏一个web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力。也就是测试web应用系统会不会崩溃,在什么情况下崩溃。
B)压力测试: 压力测试是一种性能测试,它在系统资源特别低的情况下测试软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括:
Spike testing(尖峰冲击测试):短时间的极端负载测试
Extreme testing(极端测试):在过量用户下的负载测试
Hammer testing(锤击测试):连续执行所有能做的操作
C)压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停的向服务器发送请求;或一次性向服务器发送特别大的数据等;
看看服务器保持正常运行能达到的最大状态,比如模拟上万用户从终端同时登录。
2、负载测试(Load Test)
A)负载测试是为了测量web系统在某一负载级别上的性能,以保证web系统在需求范围内能正常工作。
B)负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。
C)负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。 检验系统的能力最高能达到什么程度。比如,对于多个终端的分时系统,让它所有的终端都开动。在整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。
举个例子:
假设一个人很轻松的就能背一袋米;背两袋米很吃力;最多就能背三袋米;那么,
一般性能测试,就是让他背一袋米,去操场上跑圈,看多久能累倒。(一般性能测试指的是让被测系统在正常的软硬件环境下运行,看能运行多长时间直到系统崩溃)
负载测试,让他背两袋米,去操场上跑圈,看多久能累倒。(how much)
压力测试,让他背两袋米;三袋米;四袋米....直到他累到,看看他能背几袋米,结果只能背三袋。(how much)
3、强度测试
在异常或极端的情况下(比如资源减少或用户过多的情况),验证系统的运行情况。还可以确定测试对象能够处理的最大工作量。例如:一个系统在内存366M下可以正常运行。但是降到358M下就不可以运行,显示内存不足,这个系统对内存的要求就是366M。
强度测试的目的是找出因资源不足或资源争用(一般指一些共享资源,比如数据库锁或网络宽带)导致的错误。
4、数据库容量测试
通过存储过程往数据库表中插入一定的数据,,看看相关页面是否能够及时显示数据。还可以确定测试对象在给定时间内能够持续处理的最大负载或工作量。
5、预期指标的性能测试
系统在需求分析和设计阶段都会提出一些性能测试,完成这些指标的相关性能的测试是性能测试的首要工作之一。
这些指标主要如下:
“系统可以支持并发用户200个”、“系统响应时间不得超过20秒”等。
6、独立业务性能测试
独立业务实际是指一些核心业务模块对应的业务。核心业务的特点有:功能比较复杂、使用比较繁琐。
核心业务模块的重点测试内容是用户并发测试,并发的主要内容是指模拟一定数量的用户同时使用某一核心的相同或者不同的功能,并且持续一段时间。
7、组合业务性能测试
组合业务性能测试是最接近用户实际使用情况的测试,它是性能测试的核心内容。
通常情况下,按照用户实际使用人数比例来模拟各个模块的组合并发情况。组合性能测试经常和服务器性能测试结合起来,在通过工具模拟用户操作的同时,还通过测试工具的监控功能,采集服务器的计数器信息,进而全面分析系统瓶颈。
组合业务性能测试的核心内容是用户并发测试。
突出特点是根据用户使用系统的情况分成不同的用户组进行并发,每一组的用户比例要根据实际情况来匹配。
8、疲劳强度性能测试
指在系统稳定运行的情况下,以一定的负载压力来长时间运行系统的测试。其主要目的是确定系统长时间处理较大业务量时的性能。(通过疲劳强度性能测试基本可以判定系统裕兴一段时间后是否稳定)。
9、网络性能测试
展示宽带、延迟、负载和端口的变化时如何影响用户的响应时间的。主要是测试应用系统的用户数目与网络带宽的关系。
10、大数据量测试
主要是针对对数据库有特殊要求的系统进行的测试。主要分为三中类型:
A)实时大数据量:模拟用户工作是的实时大数据量;主要目的是测试用户较多或者某些业务产生较大数据量是,系统能够稳定的运行。
B)极限状态下的测试:主要是测试系统使用一段时间即系统积累一定量的数据时,能否正常地运行业务。
C)前面两种的结合:测试系统已经积累较大数据量时,一些实时产生较大数据量的模块能否稳定的工作。
11、服务器性能测试
软件和服务器是产生系统瓶颈的两大来源。
初级服务器性能测试主要指在业务系统工作或者进行前面其他几种性能测试的时候,监控服务器的一些计数器的信心,通过这些计数器对服务器进行综合性能分析,为调优或提高系统性能提供依据。
高级服务器性能测试一般有专门的系统管理员进行,如数据库服务器有专门的DBA来进行测试和调优。
12、一些特殊的测试
主要指配置测试,内存泄漏测试的一些特殊的web性能测试。