接口性能测试--基础理论

1. 什么是接口性能测试?

对于一个用户来说,性能的好坏最直接的体现就是响应速度快还是慢。但是对于研发和测试人员来说,性能的关注点就不仅局限在响应速度了,还包括并发用户数、在线用户数、服务处理能力、错误率、以及服务器资源耗费、系统稳定性等等。

接口性能测试就是利用测试工具模拟真实场景大量用户的访问,来检验接口服务的响应是否满足用户期望,同时验证得到接口服务所能承受的最大访问量,为接口服务的优化、服务器资源的调配等提供依据。

2. 性能模型

为了进一步理解接口性能测试,我们先来看看下面超市收银台的例子,事先做如下假设:

  • 超市共有3个收银台;
  • 每个收银台收银时间固定为5分钟(不论购物多少);
  • 顾客都是很有时间观念的人而且非常挑剔,他们对于每次结账所能容忍的等待时间+结账时间是15分钟。如果15分钟还不能结账,顾客会立马生气走人。

通过上面的假设,我们不难想象出下面的场景:

case1:1位顾客

当收银台只有1位顾客结账时,只需要1名收银员为他提供服务,其他两个收银台的收银员就闲着。顾客结账的时间是5分钟,收银台也只服务了1位顾客。

case 2:2位顾客

当收银台同时有两位顾客时,就会同时有两名收银员在为顾客服务,另外1位收银员则闲着。两位顾客结账的时间仍然是各5分钟,而收银台服务了两名顾客。

case 3:3位顾客

当收银台同时有3位顾客时,收银台可以在5分钟内同时服务3位顾客,每位顾客花费的结账时间仍然是各5分钟。

从上面3个case可以发现,在超市收银台同时服务的顾客数量从1位增加到3位的过程中,随着顾客数量的增多,收银台的整体工作效率在提高,但是每位顾客结账所消耗的时间并未延长。

case 4:6位顾客

不过随着顾客的增加,会出现新的场景。假设顾客A、B、C刚刚好准备结账,这时又过来了顾客D、E、F,因为A、B、C三位顾客先开始结账,所以D、E、F三位只好等着,5分钟后,A、B、C三位结完账走了,他们每个人结账的时间均为5分钟,可是D、E、F三位就没有这么好运,因为他们要先等A、B、C三位结完账才能结,所以他们每个人这次结账所花费的时间均为10分钟,包括等待5分钟和结账5分钟。

通过上面这个case我们可以发现,对于超市收银台来说,都是5分钟服务三位顾客,第1个5分钟是A、B、C,第二个5分钟是D、E、F;但是对于顾客D、E、F来说,“响应时间”延长了。理解了上面的这些场景,我们继续往下。

case 5:9位顾客

在新的场景中,我们假设超市收银台一次有9位顾客等待结账,根据我们上面的场景,相信你不难推断,这9位顾客中有3位的“响应时间”为5分钟,有3位的“响应时间”为10分钟(等待5分钟+结账5分钟),还有3位的“响应时间”为15分钟(等待10分钟+结账5分钟),已经达到用户所能忍受的极限。

case 6: 10位顾客

假如在把case5中的顾客数量改为10,那么根据上面的假设,我们可以断定,第10位顾客因为等待时间过长而无法忍受,最终离开超市,相当于1次超时错误,错误率=错误次数/总请求次数。

3. 性能指标

上面的例子实际就是简化版的应用系统访问的场景,里面涉及到3个性能测试的重要指标:

1)并发用户数:

即同一时刻内同时执行一个操作的用户,如上面收银场景下,多个用户在收银台结账,就可以理解为是并发用户。

2)TPS:

每秒钟系统能够处理的交易或事务的数量,这是衡量系统处理能力的重要指标,在上面收银场景中,每个收银台每5分钟可以完成一个顾客的结账,超市有3个收银台,那整个超市的最大处理能力就是3单/5min,只是时间单位与TPS不同(为了保持性能测试中TPS的专有名称,下文统一将超市的处理能力也以TPS代替),不同顾客时,TPS分别为:

  • 1位顾客:1单/5分钟
  • 2位顾客:2单/5分钟
  • 3位顾客:3单/5分钟
  • 4-6位顾客:3单/5分钟
  • 7-9位顾客:3单/5分钟
  • 10位顾客之后:第10位顾客因为等待时间过长而准备离开超市,离开时与收银员发生冲突,导致收银员收银工作受到影响,因而超市实际的TPS会小于3单/5分钟,如果顾客继续增加,不但结账需要排队,进入超市入口也会排队,极端情况下,进入超市的顾客和结完账即将离开超市的顾客都挤在超市门口,谁也动不了,这就是服务器资源被耗尽,系统被压垮的场景。

3)响应时间:

响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间,不同业务对于响应时间的要求也不同,一般互联网应用服务接口响应时间需要小于300ms,部分核心业务接口响应时间小于100ms。上面收银的场景,响应

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

<p> 本专刊共五章 21 篇正文及 5 个对应的 GitHub 项目,主要介绍了接口测试基础知识及测试用例设计方法,认证鉴权、加密验签,自动化测试,安全性测试,性能测试等内容,每一章节都有代码实例来剖析其原理,并提供了一个完整电商系统的代码,可以直接实操演练,让你知其然知其所以然,轻松搞定接口测试。加入专刊,你就加入了一大群志同道合的优质测试人圈子,同时还有和作者及作者的朋友们互动交流的机会。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p>

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务