测试类型
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
性能测试(狭义)
性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。
1.了解熟悉被测系统的业务场景或同类产品的业务场景;2.明确测试性能指标,确定性能指标;3.确定性能测试工具;4.确定测试环境;
负载测试
确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
注重不同负载情况下,系统表现出来的性能情况,通常以性能指标变化来预估判断。
例如:某个接口在10并发、20并发、50并发、80并发、100并发下。。。各并发5分钟的响应时间、每秒事务数、资源利用率等
统计汇总结果,作出预判分析。
压力测试
对被测系统上不断加压,直到性能指标达到极限(例如“响应时间”)超过预定指标或某种资源已经达到饱和状态,最终系统无法提供服务,宕机。
确定系统的性能拐点,获得系统能提供的最大服务级别。
例如:某个接口开始10并发,每隔1分钟增长20并发,一直增长,直到系统无法承受,记录分析各个阶段的性能指标变化,确定系统性能拐点。如图:
强度测试
一般是系统在指定的压力下,如cpu、内存在饱和使用情况下,系统是否能够正确处理业务。
强度多少由需求决定。
例如:1000并发下,系统运行的情况,或者CPU使用率为85%或更高的情况下,系统运行的情况等等
并发测试
并发测试是指通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。
以最细的数据记录为例,并发可分为两种:
1.不同用户操作不同的记录,如10并发操作10条不同记录,相当于多用户并发同一个模块业务,操作不同记录;
2.不同用户操作同一条记录,如秒杀,和防重测试;
配置测试
配置测试
方法通过对被测系统的软\硬件环境的调整,了解各种不同配置下对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。
1.确定影响性能的因素有哪些,比如CPU、内存、磁盘、连接数、线程数等
2.保证1个因素变化,其他因素不变,以此确定各个因素对系统性能的影响;
3.微调,最终确定一个对系统性能最好的配置组合和其他参考的配置组合;
可靠性测试
通过给系统加载一定业务压力(例如资源在70%-90%的使用率),使系统运行一段时间,以此检测系统是否稳定运行。
和强度测试相似,但强度测试注重的是短时间的高峰压力,模拟高峰期的压力测试;
而可靠性测试,相对于高峰期压力可相同可略低一些,但是要持续时间较长,不如一天8小时或一周7天。
与此类似的概念还有疲劳测试。更多的应该是被称为稳定性测试。
失效恢复测试
如果系统局部发生故障,用户是否能够继续使用系统,以及如果这种情况发生,用户将受到多大程度的影响。
一般是负载均衡、集群部署的系统需要进行相关的测试。
比如两台集群,在一定请求压力下(实际生产应该是高峰压力导致某台机器无法提供服务),手动使其中一台机器无法服务,观察,请求是否能够成功。
大数据量测试
容量测试
一般指数据量的大小下进行测试,比如预估5年后的数据量。一般也包含用户的多少,故容量测试有数据容量和用户容量等等的区分。由需求决定进行哪种或者都进行。
一般性能测试,以上测试类型都不是单独分开的。比如负载测试,属于狭义性能测试的一种,要使用用户并发,也是并发测试,不断增加负载,是压力测试,负载够大后,是强度测试,一定负载下运行时间长后,是可靠性测试,也需要一定数据量下进行测试,也是数据量测试。各个类型相互之间是交集的,只是各个侧重点不同。测试时,取决于测试需求,关注的是什么样的场景,这是测试策略。