性能测试知多少---响应时间

标签: 性能 测试 响应时间 | 发表时间:2012-07-01 15:27 | 作者:虫师
出处:http://www.cnblogs.com/

 

在上一节中,我们讲到吞吐量,做为一个用户你可以对吞吐量毫不关心,但响应时间却是用户感受系统性能的主要体现。

从用户角度来说,软件性能就是软件对用户操作的响应时间。说得更明确一点,对用户来说,当用户单击一个按钮,发出一条指令或在web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象。

 

 

响应时间过程分析

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

呈现时间

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

当然,我说这个呈现时间总不能全怪罪与浏览器的身上吧!当然还和承载它的操作系统有关,以及电脑硬件(比如cpu 内存)。假如你有超快的浏览器,如果是一台极其垃圾的电脑,我想你多打开两个网页就有可能使电脑卡掉。

数据传输时间

千万不要忽视数据传输时间。如果你要寄信给你一个远方的朋友,你想是什么影响你将信息传递给远方的朋友?不是你写信的过程(如果你写的信不像书一样厚的话),也不是你朋友读信的过程,而是送信的过程。(ps, 我10天前在china-pub订购的一本书现在还没到货!XXX)

拿我们系统的数据传输过程来说,我们发送一个请求需要时间,系统处理完后返回给我们也需要时间。初学性能测试工具的同学喜欢拿工具去测试互联网上的一些系统,甚至不懂性能的同学认为可以用性能测试工具将互联网上的一些网站压崩溃。貌似这一招比任何黑客攻击厉害多去。

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

这也是为什么我们在一般做性能测试时,一般要强调要在局域网中进行。当然,也有特殊的性能测试需要在互联网中时行。它们重点不是求用户的最大的并发量。

系统处理时间

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

如果我们对系统的的处理进行分析和讲解的话,它会是一个非常庞大与复杂的过程。语言、语言框架、中间件,数据库、系统架构以及服务器系统。所以,想成为一个优秀的性能测试工程师我们的路还很长。

 

实际性的能测试

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

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

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

 

  响应时间的定义:

响应时间

指的是客户发出请求到得到响应的整个过程的时间。在某些工具中,请求响应时间通常会被称为“TTLB”(Time to laster byte) ,意思是从发起一个请求开始,到客户端收到最后一个字节的响应所耗费的时间。

系统响应时间

应用系统从发出请求开始到客户端接收到响应所消耗的时间。需要注明的是,这样的定义完全是个人喜好。你可以提异议。

 

我们来看两种情况

我要访问百度首页,发出了一个请求,百度开始给我返回页面数据,当搜索框与搜索按钮都已经返回到页面上了,但那个图标还在发送中。我不认为这个响应是完整的。必须把页面上的所有信息都返回给我才是完整的,我要的也是所有结果返回给我的时间。这种情况更符合“相应时间”的定义

     某系统有一个信息查询功能,当我输入某条件查询时,可能要查询几百万条数据,如果数据库,要查询所有的数据并把所有的数据全部完整的返回给我。可能服务器要查询很久,而我的电脑全部接收这些数据也可能只直接挂掉。那么服务器可能只查询100条数据并把数据返回给我,当我点击“下一页”时,服务器再次查询并将第二页的数据返回给我。这种情况更符合“系统响应时间”的定义。

关于响应时间,要特别说明的一点是,对客户来说,该值是否能够被接受是带有一定的用户主观色彩,也就是说,响应时间的“长”和“短”没有绝对的区别。

 

合理的响应时间

在互联网上对于用户响应时间,有一个普遍的标准。2/5/10秒原则。

也就是说,在2秒之内给客户响应被用户认为是“非常有吸引力”的用户体验。在5秒之内响应客户被认为“比较不错”的用户体验,在10秒内给用户响应被认为“糟糕”的用户体验。如果超过10秒还没有得到响应,那么大多用户会认为这次请求是失败的。

这里我们还要考虑一个使用频率的概念。

我最早安装windows系统可能要1个小时,我们为什么觉得这很正常,因为我们要很久才装一次系统,如果系统使用得当,可能一个系统用几年不用重装,假如,我们在系统上装个任何小软件都要这么长时间,那我们一定是无法忍受的。对于软件控来说,他们会时常安装各种新鲜有趣的软件进行使用。

对于一个税务报账系统,该系统的用户每月使用一次,一次花费3小时进行数据的录入,

当用户单击“提交”按钮后,即使系统在10分钟后才给出“处理成功”的消息,我们也觉得是可以接受的。

    因此,在进行性能测试时,“合理的响应时间”取决于用户的需求,而不能依据测试人员自己设想来决定。

本文链接

相关 [性能 测试 响应时间] 推荐:

性能测试知多少---响应时间

- - 博客园_首页
在上一节中,我们讲到吞吐量,做为一个用户你可以对吞吐量毫不关心,但响应时间却是用户感受系统性能的主要体现. 从用户角度来说,软件性能就是软件对用户操作的响应时间. 说得更明确一点,对用户来说,当用户单击一个按钮,发出一条指令或在web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象.

mongodb性能测试

- - 数据库 - ITeye博客
1) Mongodb的非安全插入方式,在一开始插入性能是非常高的,但是在达到了两千万条数据之后性能骤减,这个时候恰巧是服务器24G内存基本占满的时候(随着测试的进行mongodb不断占据内存,一直到操作系统的内存全部占满),也就是说Mongodb的内存映射方式,使得数据全部在内存中的时候速度飞快,当部分数据需要换出到磁盘上之后,性能下降很厉害.

WebService性能测试

- - ImportNew
(本文也会在最下面通俗的介绍). 这里给一个站内大哥的讲解: http://www.cnblogs.com/Leo_wl/archive/2010/05/20/1740205.html. 简单点就是测试WebService的一个工具. 官网地址: http://www.soapui.org/. ps:官网是英语的,如果你英语不好的话可以使用谷歌浏览器或360极速浏览器,它可以自动把英文转换成中文.

性能测试工具 CBenchmark

- lele - 开源中国社区最新软件
CBenchmark—-CharlesCui’s Benchmark 这是我实现的一款性能测试工具,之前在工作中常用LoadRunner之类的工具来完成性能测试,但受限于LR极其昂贵的Lisence以及难以定制的SDK,于是我用C/C++实现了这个工具,并借助Linux系统对线程和进程的良好调度,可以实现极高的并发压力.

浏览器性能测试

- - Taobao QA Team
浏览器作为一个浏览网页的平台,自身的性能直接影响网页的解析速度、渲染,而浏览器的性能一般又是由浏览器的内核来决定. 虽然浏览器的评测方法有很多,但是权威的浏览器性能测试方法主要有以下几种:. Acid3测试是检测浏览器与Web标准兼容性的主要方法,也是目前行业中最权威的测试. Acid3是由网页标准计划小组(Web Standards Project, WaSP)设计,测试焦点集中在ECMAScript、DOM Level 3、Media Queries和data: URL,浏览器开启 http://acid3.acidtests.org/测试页面后,页面会不断加载功能、直接给予分数.

【闲说】性能测试

- - 并发编程网 - ifeve.com
版权声明:本文为本作者原创文章,转载请注明出处. 感谢 码梦为生| 刘锟洋 的投稿. 性能测试是一件看起来不简单,操作起来确更困难的事情,我认为,每认真做一次性能测试,一定会有不同收获,而每次性能测试暴露的问题,现象都不是仅仅涉及Java,tomcat这么简单,简单说就是光会写代码是无法做好性能测试的.

Android应用性能测试

- - CSDN博客推荐文章
java虚拟机有内存使用上限的限制. adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop. 单个应用程序最大内存限制,超过这个值会产生OOM. 单个java虚拟机最大的内存限制,超过这个值会产生OOM. android程序内存一般限制在16M,当然也有24M的,而android程序内存被分为2部分:.

web性能测试指标

- - 研发管理 - ITeye博客
Web性能测试的部分概况一般来说,一个Web请求的处理包括以下步骤:. (2)web server接受到请求,进行处理;. (3)web server向DB获取数据;. (4)webserver生成用户的object(页面),返回给用户. 给客户发送请求开始到最后一个字节的时间称为响应时间(第三步不包括在每次请求处理中).

node.js调研与服务性能测试

- lostsnow - 淘宝数据平台与产品部官方博客 tbdata.org
这几天对nodejs进行了一下简单的调研. 考虑到今后的应用场景, 实现了一个简单的memcache代理服务.. 内部维护了一个50连接的简单连接池, 通过长连接与memcache服务器相连.. 同时对外提供socket代理服务与http restful服务. 测试使用编译安装的node.js v0.3.1,未使用任何第三方modules.

HBase随机读写性能测试

- jiaosq - NoSQLFan
本文转载自淘宝网BlueDavy同学的博客,文章基于淘宝对HBase的大量应用,给出了一个HBase的随机读写性能测试结果,对测试环境、配置及性能参数分析都有较详细的描述,推荐给各位NoSQL Fans. 根据最近生产环境使用的经验,更多的项目的采用,以及采用了更加自动的测试平台,对HBase做了更多的场景的测试,在这篇blog中来分享下纯粹的随机写和随机读的性能数据,同时也分享下我们调整过后的参数.