- 目的:发现性能瓶颈
- 概念:性能测试是一个非常广泛的概念,包括很多方面的测试,也可称为非功能测试
具体分类(测试范围):
- 负载测试:通过逐步加压的方法,达到既定的性能阈值的指标。阈值的设定应是小于某个值,如cpu使用率小于等于80%
- 压力测试:通过逐步加压的方法,使得系统的某些资源达到饱和,甚至失效的状态,简单粗暴的解释就是什么条件能把系统压崩溃。
- 并发测试:在同一时间内,多个虚拟用户同时访问同一模块,同一功能,通常的测试方法是设置集合点(等待所有的虚拟用户到时间满足了集合点的条件,比如有100个并发,必须等80个用户全到这才能一起开始)
- 容量测试:通常是指数据库层面的,目标是获取数据库的最佳容量的能力。又称为容量预估。具体测试方法为在一定的并发用户,不同的基础数据下,观察数据库的处理能力,即获取数据库的各项性能指标。
什么时候做容量测试?
所有的性能测试都已经测完了,性能指标也满足现有既定性能指标,未来几个月要扩大业务的时候 - 可靠性测试:又称之为稳定性测试或疲劳测试。是指系统在高压情况下,长时间的运行系统是否稳定。如cpu使用率在80%以上,7*23小时运行,系统是否稳定。
这个测试最有可能发现内存溢出(OOM),因为内存泄露发生的原因是底层垃圾回收不彻底导致出现的问题 - 异常测试:又称为失败测试。是指系统架构方面的测试。如在负载均衡架构中,要测试宕机,节点挂掉等情况系统的反应。比如一个nginx服务器挂着3个tomcat,挂掉1个是什么反应。正常情况下是挂掉一个并不影响整个系统。正常情况下挂掉用户nginx就不往这个请求上发了,发到其他2个。然后进程复活后,接着往那台机器上发。