性能测试类型
性能测试也分好几种类型,常见的类型有负载测试和压力测试,当然,并发测试也是比较常见的类型,下面就一一列出来。。。
PS:文末附上一张性能测试类型的思维导图
1、负载测试(可置性测试)
定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。可以找到系统的处理极限,为系统调优提供数据
特点:
1):该方法主要目的是找到系统处理能力的极限
2):该方法在给定的测试环境下进行,通常需要考虑被测系统的业务压力量和典型场景
3):该方法一般用来了解系统的性能容量,或者是配合性能调优来使用
性能容量:系统在保证一定响应时间的情况下能够允许多少并发用户的访问
2、压力测试
定义:系统在一定饱和状态下,例如CPU、内存等饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误
特点:
1)该方法的主要目的是检查系统处于压力情况下是应用的性能表现
该方法通过增加访问压力,是系统资源使用保持在一定水平,检验此时应用的表现,重点在于有误出错信息产生,系统对应用的响应时间等
2)该方法一般通过模拟负载等方法,使得系统的资源使用达到较高的水平
3、验收性能测试
定义:特定条件下验证系统的能力状况
特点:
1)该方法主要目的是验证系统是否具有系统宣称的能力。
方法包括:确定用户场景,给出需要关注的性能指标,测试执行,测试分析几个步骤
2)该方法需要事先了解被测系统的典型场景,并具有确定的性能目标
3)这种方法要求在已确定的环境下进行
4、配置测试
定义:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则
特点:
1)该方法主要目的是了解各种不同因素对系统系能影响的程度,从而判断出最值得进行的调优操作
2)该方法一般在对系统性能状况有初步了解后进行
需要在确定的环境、操作步骤和压力条件下进行
3)该方法一般用于性能调优和规划能力
5、并发测试
定义:模拟多用户并发访问同一个应用、模块或者数据记录时是否存在死锁或者其他性能问题
特点:
1)该方法主要目的是发现系统中可能存在的并发访问时的问题
2)该方法主要关注系统中可能存在的并发问题。比如:内存泄漏、线程锁和资源争用等问题
3)该方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持
常用工具:商业软件loadrunner:功能完整强大,内存占用大,需要收费
开源工具jmeter:开源免费,自由,操作较简单,能辅助完成日常的一些测试工作
6、可靠性测试
定义:给系统施加一定的业务压力,让其持续运行一段时间,测试在这种条件下能否稳定运行
特点:
1)该方法的主要目的是验证系统是否支持长期稳定的运行
2)该方法需要在压力下持续一段时间的运行
3)测试过程中需要关注系统的运行情况
比如:内存使用或者其他资源的使用以及响应时间有无明显变化
7、失效恢复测试
针对有多余备份和负载均衡的系统设计
定义:检测如果系统局部发生故障,系统能否继续使用
特点:
1)该方法主要目的是验证局部故障下系统能否继续使用
2)该方法需要指出:问题发生时“能支持多少用户访问”和“采取何种应急措施”
一般只有对系统持续运行能力有明确指标的系统才需要该类型测试
上述几种类型是针对书中的知识点的归纳,下面列出自己对并发,负载,压力的理解。。。。。。
负载测试:通过不断加压使系统达到瓶颈,为调优提供参考数据
压力测试:
1)稳定性压力测试:在不同的给定的条件下(比如内存的使用,一定时间段内有多少请求等),系统表现出来的处理,反应能力(这里会考虑系统的容错能力,恢复能力)
2)破坏性压力测试:不断加压,直至系统崩溃,挂掉,来得出系统的最大承受能力在哪儿
并发测试:简单理解就是业务场景短时间内有大量的请求需要处理,一般出现在登陆或者某些比较重要的模块,按钮。
8、类型导图
上图可能和这篇博客的内容有所出入,但目的是希望能加深理解。。。