常见的性能测试方法:负载测试(Load Testing),压力测试(Stress Testing),并发测试(Concurrency Testing),基准测试(Bench Testing),稳定性测试(Stability Testing),可恢复性测试(Recovery Testing)等数据库
负载测试服务器
主要是考察软件系统在给定负载下的性能表现网络
站在用户角度去观察在必定条件下软件系统的性能表现多线程
负载测试的预期结果是用户的性能测试需求获得知足并发
例如:ide
能够支持100个并发用户执行各类查询操做,要求各类查询操做的响应的时间在5秒之内,服务器CPU利用率在80%如下性能
压力测试:测试
1.为了考察系统在极端条件下的表现,极端条件能够是超负荷的交易量和并发用户数spa
2.这个极端条件并不必定是用户的性能需求,可能远远高于用户需求操作系统
3.压力测试是能让咱们识别系统的弱点和在极限负载下程序将如何运行
4.压力测试和负载测试的不一样是,压力测试的预期结果是系统出现问题,而咱们考察的是系统处理问题的方式
用户量压力例子:系统最大支持的同时在线用户数是1000个,压力测试需求测试在1000个用户甚至2000个用户同时在线是系统的表现
数据量压力例子:在系统内存耗尽状况下,测试系统的运行状况,这种状况下被测试系统也不该该崩溃
压力测试的反常规操做:
1.当平均每秒出现1个或2个中断的状况下,应当对每秒出现10个中断的情形来进行特殊的测试;
2.把输入数据的量提升一个数量级来测试输入功能会如何响应:
3.应当执行须要最大的内存或其余资源(如CPU,内存,磁盘,网络)的测试用例;
4.运行一个虚拟的操做的操做系统中可能会引发大量的驻留磁盘数据的测试用例;
5.两倍的已经极基线的并发用户数或者http链接数
随机的关闭及重开链接到服务器上的网络上集线器/路由器上网端口(例如,可经过SNMP命令实现)
6把数据库断线而后重启
并发测试:
通常是和服务器端创建大量的并发链接,经过客户端的响应时间和服务器端的性能检测状况来判断系统是否达标到了既定的并发能力指标
负载测试每每就会使用并发来创造负载
并发测试每每涉及服务器的并发容量,以及多进程/多线程协调同步可能带来三万问题
并发测试例子:
1.400并发用户,事务失败率>1.35%,软件系统失败
2.500并发用户,事务失败率>10%系统中断
3.600并发用户,事务失败率>80%,系统崩溃
基准测试:
当软件系统中增长一个新的模块的时候,须要作基准测试,以判断新模块对整个软件对系统的性能影响
须要打开/关闭新模块至少各作一次测试,关闭模块状态下的系统各个性能指标记下来做为基准,而后与打开模块状态下的系统性能指标做比较
稳定性测试:
考察测试系统在必定负载下运行长时间后是否会发生问题
有些问题只有在运行一天或者一个星期甚至更长的时间才会暴露,这种问题通常是程序占用资源却不能及时释放而引发的
可恢复性测试:
测试系统可否快速地从错误状态中恢复到正常状态
可恢复测试一般结合压力测试一块儿来作