1.性能测试(performance testing)
模拟实际应用场景,测试系统性能是否满足生产性能的需求,即性能测试是在已经确定的环境下运行。
e.g.: 要求系统在100个并发用户的条件下进行某种业务操作,response time<5s
2.负载测试(Load testing)
在被测系统上不断加压,直到某些性能指标超过预定目标或者某种资源使用已达到饱和状态。这种测试旨在寻找系统处理能力的极限。
e.g.:预定指标:response time<5s, CPU percentage<55%
极限:在给定条件下最多可以支持120个并发用户,在给定条件下最多可以在1小时 2100次操作。
Load testing一可以用来了解系统的容量,二来可以配合性能调优,用这种方法比较调优前后的性能差异。
3.压力测试(Stress testing)
在CPU、内存等饱和使用的情况下,系统的处理能力。
这种测试一般用于考量系统的稳定性,在压力下是否有内存方面的问题。
4.配置测试(configuration testing)
通过对被测系统的软/硬件环境的调整,了解不同环境对系统性能影响的程度(e.g.:硬件设备、网络环境、application server、数据库server的参数等),从而找到各项资源的分配原则。
这种测试一般在对系统性能状况有初步了解后进行,一般用于性能调优和系统扩展。
5.并发测试(Concurrency testing)
模拟用户并发访问时系统是否存在内存泄露、线程锁、资源争用或其他性能问题。
并发测试主要关注的问题
内存问题:是否有内存泄露(C/C++)
是否有太多的临时对象(java)
是否有太多超过生命期的对象(java)
数据库问题:是否有数据库死锁
是否经常出现长事务(long transaction)
线程/进程问题:是否出现线程/进程同步失败
其他问题:是否出现资源争用导致死锁
是否没有正确处理异常(如超时)导致系统死锁
6.可靠性测试(Reliability testing)
给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否稳定运行。与压力测试不同的是,这种测试旨在验证系统能否长期稳定运行。在运行测试的过程中要观察系统的内存使用状况、系统其它资源的使用状况以及系统的响应时间有无明显变化。
7.失效恢复测试(Failover testing)
针对具有冗余备份和负载均衡的系统所设计的测试。这种性能测试方法还需指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。
阅读(1757) | 评论(1) | 转发(0) |