常见的性能测试方法:负载测试(Load Testing),压力测试(Stress Testing),并发测试(Concurrency Testing),基准测试(Bench Testing),稳定性测试(Stability Testing),可恢复性测试(Recovery Testing)等
负载测试
主要是考察软件系统在给定负载下的性能表现
站在用户角度去观察在一定条件下软件系统的性能表现
负载测试的预期结果是用户的性能测试需求得到满足
例如:
可以支持100个并发用户执行各种查询操作,要求各种查询操作的响应的时间在5秒以内,服务器CPU利用率在80%以下
压力测试:
1.为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数
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%,系统崩溃
基准测试:
当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件对系统的性能影响
需要打开/关闭新模块至少各做一次测试,关闭模块状态下的系统各个性能指标记下来作为基准,然后与打开模块状态下的系统性能指标作比较
稳定性测试:
考察测试系统在一定负载下运行长时间后是否会发生问题
有些问题只有在运行一天或者一个星期甚至更长的时间才会暴露,这种问题一般是程序占用资源却不能及时释放而引起的
可恢复性测试:
测试系统能否快速地从错误状态中恢复到正常状态
可恢复测试通常结合压力测试一起来做
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。