LR的响应时间与使用IE所感受时间不一致的讨论
在做性能测试时,有时碰到这样一种情况,使用性能工具LR测试出来的响应时间比实际使用IE感受到的时间要长,例如,实际使用IE打开一个系统时只需要1~2秒,而使用LR跑一个用户所得出的结果可能是8秒、10秒、或者更大的响应时间。
针对上述问题进行分析总结,有3种情况:
1、在运行LR场景时没有忽略Think Time(思考时间)和记录log的时间;
2、测试机配置不高,比如低配置的机器在运行场景工具时系统资源已满,则造成响应时间过长。
3、实际IE感受的时间不等同于LR录制的响应时间。
前两中情况可以通过LR设置及提高硬件配置解决。
第三种情况,因为LR在录制过程中,事物的响应时间包括:DNS Resolution、Connection、First Buffer time、Receive Time、Client Time时间等,比如当我们在使用IE打开页面时,系统首先会进行域名解析,并与服务器建立连接、下载数据,到这时在IE中已可以显示页面,但实际响应时间并没有结束,浏览器仍有可能在与服务器进行数据交互,或者客户端IE由于忙碌未及时将请求发出,出现了客户端延时情况(客户端IE会执行一些javascript脚本或其他页面初始化动作),直到这些动作全部完成后才是一个完整的响应时间,LR也是记录的这个响应时间。
所以我们通常使用IE所感受到的时间是比用性能工具录制时记录的响应时间要少。因此,系统页面的响应时间应以工具记录时间为准,并在分析报告中查看平均事物响应时间。
--------
对时间的解释:
1、DNS Resolution:浏览访问一个网站的时候,一般用的是域名,需要DNS服务器把域名解析为IP地址,这个过程就是域名解析时间。
2、Connection:解析出WebServer的IP地址后,浏览器请求被发送到了一个Web Server,然后浏览器和Web Server 之间需要建立一个初始化的HTTP连接,服务器端需要做两件事:一个是接收请求,二是分配进程。建立该连接的过程就是Connection。
3、First Buffer:建立连接后,从Web Server发出第一个数据包,进过网络传输到客户端,浏览器成功接收第一个字节的时间就是First Buffer。
4、Receive:从浏览器接收第一个字节起,直到成功收到最后一个字节,下载完成为止。
5、Client Time:请求在客户端浏览器延迟的时间。
在实际使用LR做页面请求响应时间时,我采取的是下载页面,清除IE缓存,每次都是不同用户浏览,所以对服务器的压力比较大,每秒的请求数居高,但是得到的responsetime确实比手动的时候大了很多,个人认为,图片在加载过程中及CSS样式文件,都是同步在加载,但是对IE客户端来说,人的视觉首先会看到图片,然后才是样式的出现,所以感觉上要快,因为看到的是一个动态过程,但是对LR来说,它只关心,从第一次请求到最终结束请求的时间,因此时间上会比实际操作时要长。
举个例子,或许就是一个图片链接,但是他加载的可能一个超级链接,但是这个链接又是用ajax来实现的,另外还带有CSS,但是对IE端用户来说,只要看到图片就认为加载完毕了!
例如,我们需要衡量服务器处理一个请求的平均响应时间。考虑,服务器端能同时并发处理的请求数一定,当性能测试发送的每秒请求数超过它能处理的请求数后,再到达的请求将会在服务器系统中排队等待,这时,整个响应时间的计时已经开始,排队等待时间将会计入响应时间。所以,如果LR仍然持续发送请求,可能造成接下来的请求都在等待。这时,服务器每次处理的事务数在下降,平均响应时间在增大,造成了请求发送越快,处理越少越慢。
对于这种情况,从服务器端出发,来考虑设置请求发送的速度。”
悟石:“从服务器端来看,让每颗CPU都忙碌起来,是件好事。当压力超过CPU能承受范围时,认为是过载,等待队列会越来越长,load不断飙升。
其实LoadRunner 是以客户端的角度来定义“响应时间”的,当客户端请求发出去后, LoadRunner 就开始计算响应时间,一直到它收到服务器端的响应。这个时候问题就产生了:如果此时的服务器端的排队队列已满,服务器资源正处于忙碌的状态,那么该请求会驻留在服务器的线程中,换句话说,这个新产生的请求并不会对服务器端产生真正的负载,但很遗憾的是,该请求的计时器已经启动了,因此我们很容易就可以预见到,这个请求的响应时间会变得很长,甚至可能长到使得该请求由于超时而失败。等到测试结束后,我们查看一下结果,就会发现这样一个很不幸的现象:事务平均响应时间很长,最小响应时间与最大响应时间的差距很大,而这个时候的平均响应时间,其实也就失去了它应有的意义。也就是说,由于客户端发送的请求太快而导致影响了实际的测量结果,设置步长则可以缓解这一情况,这样,应该试试设置pacing,再运行看看情况
后尝试配置pacing为delay30s, 场景结果有所改变。需要仔细了解其中原理。
LR的响应时间与使用IE所感受时间不一致的讨论的更多相关文章
- 转:LR的响应时间与使用IE所感受时间不一致的讨论
在做性能测试时,有时碰到这样一种情况,使用性能工具LR测试出来的响应时间比实际使用IE感受到的时间要长,例如,实际使用IE打开一个系统时只需要1~2秒,而使用LR跑一个用户所得出的结果可能是8秒.10 ...
- LR的响应时间与使用IE所感受时间不一致的讨论(摘抄补充)
http://www.51testing.com/html/33/564333-865629.html 在做性能测试时,有时碰到这样一种情况,使用性能工具LR测试出来的响应时间比实际使用IE感受到的时 ...
- 转:LoadRunner响应时间与用户体验时间不一致问题的深入分析
在新一代一期项目非功能测试过程中,我们发现了LoadRunner测试响应时间与客户端实际用户体验时间不一致的现象.例如员工渠道上线后,客户体验时间远远超过了LoadRunner测试响应时间.本文针对这 ...
- 【笔记】LR响应时间
事务:是指在客户端做一种或多种的业务所需要的操作集. 事务响应时间:是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户响应时间. 响应时间是服务器返回和用户请求之间的时间差,那么得 ...
- LR Analysis:详解FirstBufferTime
LR Analysis:详解FirstBufferTime 详解 第 一次缓冲时间 测试结果分析过程中,经常遇到第一次缓冲时间 FirstBufferTime,并且发现大 部分系统的响应时间也都浪 ...
- 软件测试面试(2)LR篇
一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...
- LR网页细分图中的时间详解
Web Page Diagnostics: 1)DNS Resolution:浏览器访问一个网站的时候,一般用的是域名,需要dns服务器把这个域名解析为IP,这个过程就是域名解析时间,如果我们在局域网 ...
- LR 常见问题收集及总结
一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...
- lr总结
最近一直在用Loardrunner做性能测试,记录下自己在工作中遇到的问题. LR的基本设置 首先是录制,在录制前选择TOOLS-recording options 在General中选择record ...
随机推荐
- centos7 minimal版本下mysql的安装
最近第一次尝在虚拟机上安装mysql,由于是centos7 minimal版本,很多安装包或命令必须自己添加,遇到很多问题. 首先是执行# yum install mysql-server 报错: 打 ...
- 弹出浮层css+JQuery
先来张效果图: HTML代码如下: <body> <div class="bg" id="bg" style="display: n ...
- mysql基础之yum安装mysql5.7.18
2017-04-19 一.实验环境 centos7_x64 由于centos7的yum源里默认使用了mariadb替代了mysql,所有我们还得先配置一下yum源.当然mariadb和mysql是兼容 ...
- Chrome浏览器扩展开发系列之十九:扩展开发示例
翻译总结了这么多的官网内容,下面以一款博主开发的“沪深股票价格变化实时追踪提醒”软件为例,介绍Chrome浏览器扩展程序的开发,开发环境为Eclipse IDE+Chrome Browser. “沪深 ...
- mysql常见的优化方法
1.选取适当的字段属性.例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任 ...
- es6知识总结--3
es6知识总结--3 es6对咱们es3,es5的数据类型进行了升级下边说新APIs! js数据类型有Number.String .oject.Boolean.Null.Undefined六种数据类型 ...
- 如何在通过knockout数据绑定的DOM元素上添加事件
通过knockout数据绑定的DOM元素,通过chrome控制台打断点知道,DOM元素会被暂时隐藏,使用document.querySelector()是获取不到的,会显示null,直到数据绑定完成才 ...
- 安装Scala-2.11.7——集群学习日记
前言 在安装Spark之前,我们需要安装Scala语言的支持.在此我选择的是scala-2.11.7版本. scala-2.11.7下载 为了方便,我现在我的SparkMaster主机上先安装,把目录 ...
- java多态加深
当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法. public class Dtai ...
- 【期望DP】
[总览] [期望dp] 求解达到某一目标的期望花费:因为最终的花费无从知晓(不可能从$\infty$推起),所以期望dp需要倒序求解. 设$f[i][j]$表示在$(i, j)$这个状态实现目标的期望 ...