性能测试基础(五)响应时间

虫师 创建于 大约 1 年 之前

最后更新时间 2019-01-15


站在用户角度来说,你可以将软件性能看作是软件对用户操作的响应时间。说得更明直白点,对用户来说,当单击一个按钮或链接,从用户单击开始到应用系统把本次操作的结果以用户识别的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象。


响应时间过程分析:

我们需要对这个过程进行分解,才能得到你真正想要的响应时间。我把整个过程分三个部分:呈现时间,数据传输时间和系统处理时间。

呈现时间

其实主要说的浏览器对接收到数据的一个处理展示的过程。几年前大家都在用IE,如果页面显示比较慢,我们肯定不会怪罪IE,只会怪罪电信运营商的网速或被访问的系统(其实,大多情况我们不会考虑是被访问系统的问题)。现在Chrome来了,我们会发现同一台电脑同一个网站,通过Chrome去访问,页面的呈现速度会比IE略快。这是各种评测及大众用户的整体感受。

当然,我说这个呈现时间不能全怪在浏览器的身上,当然还和承载它的操作系统有关,以及电脑硬件(比如CPU、 内存)。假如你有超快的浏览器,如果是一台配置很低的电脑上运行,当你多打开几个网页就有可能使电脑卡死。

数据传输时间

千万不要忽视数据传输时间。如果你要寄信给你一个远方的朋友,你想是什么影响你朋友收到信的时间的?不是你写信的过程(如果你写的信不像书一样厚的话),也不是你朋友读信的过程,而是送信的过程。

拿我们系统的数据传输过程来说,我们发送一个请求需要时间,系统处理完后返回给我们也需要时间。初学性能测试工具的同学喜欢拿工具去测试互联网上的一些系统,甚至不懂性能的同学认为可以用性能测试工具将互联网上的一些网站宕机。

那么,我觉得这些同学应该补补网络知识了,你的带宽是多少?互联网是个网,就是算是相同的起点与终点,它有可能走的不同的路线。有没有考虑网络延迟?就算你的发出请求都能成功的发出,但到目的地的时候,已经不能叫并发了。

这也是为什么我们在一般做性能测试时,一般要强调要在局域网中进行。当然,有些性能测试需要在互联网中时行。但它们重点不是验证服务器端的最大处理能力。

系统处理时间

当系统得到请求后会对请求进行处理并将结果返回。那我进行性能测试主要就是验证系统的处理时间,因为前面的呈现时间和数据传输时间都是我们不可控制的,用户使用的电脑及浏览器千差万别,用户的网络状况千差万别。我们唯一能控制的就是将系统的处理请求的时间缩到最短。   一般性能测试场景

听了上面的分析,貌似每个过程都挺“浪费”时间,那么我们如何只测试系统的处理时间呢?

一般测试工具都屏蔽响应的呈现过程,只是模拟多用户并发请求,计算用户得到响应的时间,不会将服务器的每个响应做客户端渲染呈现。

对于数据传输的问题,这也是我要强调的性能测试要在局域网中进行,在局域网中一般不会受到数据带宽的限制。所以,可以对数据的传输时间忽略不计。

我要留言

  • 嗯, 我写的信不像书一样厚

    molly_keke 创建于 2018-12-27 17:28:44