目录
前言:
接口性能测试是指测试系统中各个接口的性能,包括响应时间、吞吐量、并发数、性能瓶颈等指标。接口性能测试可以发现接口在高并发、大数据量的情况下是否能正常运行。
性能测试术语解释
1.响应时间
响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。响应时间按软件的特点再可以细分,如对于一个C/S软件的响应时间可以细分为网络传输时间、应用服务器处理时间、数据库服务器处理时间。另外客户端自身也存在着解析时间、界面绘制呈现时间等。
响应时间主要站在客户端角度来看的一个性能指标,它是用户最关心、并且容易感知到的一个性能指标。
2.吞吐率
吞吐率指单位时间内系统处理用户的请求数,从业务角度看,吞吐率可以用每秒请求数、每秒事务数、每秒页面数、每秒查询数等单位来衡量。从网络角度看,吞吐率也可以用每秒字节数来衡量。
吞吐率主要站在服务端的角度来看的一个性能指标,它可以衡量整个系统的处理能力。对于集群或者云平台来说,吞吐率指标反映的是服务器集群对外整体能够承受的压力,该指标比用户数更容易对比。
备注:吞吐量=吞吐率*单位时间
3.用户数
对于服务器集群或者云平台,几乎都是多用户系统,系统能提供给多少用户正常使用,也是一个非常重要的度量指标。我们把这些用户按照使用系统的时机不同,做如下区分。
系统用户数(SystemUsers):指系统能够存储的用户量。
在线用户数(OnlineUsers):指用户通过身份确认后,处于能正常使用状态的用户个数。
并发用户数(Concurrentusers):指在某个时间范围内,同时正在使用系统的用户个数。
严格并发用户数(Strictlythenumberofconcurrentusers):指同一时刻都操作某个业务的用户数。
在性能测试过程中,我们要去模拟实际用户来发请求。但是为了吐服务器产生更大的压力,我们模拟的用户操作和实际的用户操作存在一定的差异(比如模拟的用户请求比实际用户的请求更频繁),而且返种模拟的用户数和实际的用户数也难以相互换算。所以在度量服务器集群能力时,吞吐率指标比用户数指标更实用。
性能测试方法及目标
1.性能测试方法
1.1基准测试(BenchmarkTesting)
基准测试是基于一定规模的数据量上进行单业务或按实际用户操作同比例组合业务的测试,目的在于量化响应时间、吞吐率的指标,便于后续比对。
方法是做多组不同场景的测试,观察结果,抽取出几个关键数据做好记彔,用于以后进行性能对比和评价。
1.2性能测试(PerformanceTesting)
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。
特点:
(1)主要目的是验证系统是否具有系统宣称的能力。
(2)需要事先了解被测系统的典型场景,并具有确定的性能目标。
(3)要求在已确定的环境下运行。
1.3负载测试(LoadTesting)
通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。
特点:
(1)主要目的是找到系统处理能力的极限。
(2)需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。
(3)一般用来了解系统的性能容量,或是配合性能调优使用。
1.4压力测试(StressTesting)
测试系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。
特点:
(1)主要目的是检查系统处于压力情况下是应用的表现。
(2)一般通过模拟负载等方法,使得系统的资源使用达到较高水平。
(3)一般用于测试系统的稳定性。
1.5配置测试(ConfigurationTesting)
通过对被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。
特点:
(1)主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行得调优操作。
(2)一般在对系统性能状况有初步了解后进行。
(3)一般用于性能调优和规划能力。
1.6并发测试(ConcurrencyTesting)
通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
特点:
(1)主要目的是发现系统中可能隐藏的并发访问时的问题。
(2)主要关注系统可能存在的并发问题,例如系统中的内存泄露、线程锁和资源争用方面的问题。
(3)可在在开发的各个阶段使用,需要相关的测试工具的配合和支持。
1.7可靠性测试(ReliabilityTesting)
通过给系统加载一定的业务压力(例如资源在70%~90%的使用率)的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。
特点:
(1)主要目的是验证系统是否支持长期稳定的运行。
(2)需要在压力下持续一段时间的运行。
(3)需要关注系统的运行状况。
1.8失效恢复测试(FailoverTesting)
针对有冗余