在做性能测试时,有时碰到这样一种情况,使用性能工具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所感受时间不一致的讨论的更多相关文章

  1. 转:LR的响应时间与使用IE所感受时间不一致的讨论

    在做性能测试时,有时碰到这样一种情况,使用性能工具LR测试出来的响应时间比实际使用IE感受到的时间要长,例如,实际使用IE打开一个系统时只需要1~2秒,而使用LR跑一个用户所得出的结果可能是8秒.10 ...

  2. LR的响应时间与使用IE所感受时间不一致的讨论(摘抄补充)

    http://www.51testing.com/html/33/564333-865629.html 在做性能测试时,有时碰到这样一种情况,使用性能工具LR测试出来的响应时间比实际使用IE感受到的时 ...

  3. 转:LoadRunner响应时间与用户体验时间不一致问题的深入分析

    在新一代一期项目非功能测试过程中,我们发现了LoadRunner测试响应时间与客户端实际用户体验时间不一致的现象.例如员工渠道上线后,客户体验时间远远超过了LoadRunner测试响应时间.本文针对这 ...

  4. 【笔记】LR响应时间

    事务:是指在客户端做一种或多种的业务所需要的操作集. 事务响应时间:是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户响应时间. 响应时间是服务器返回和用户请求之间的时间差,那么得 ...

  5. LR Analysis:详解FirstBufferTime

    LR Analysis:详解FirstBufferTime   详解 第 一次缓冲时间 测试结果分析过程中,经常遇到第一次缓冲时间 FirstBufferTime,并且发现大 部分系统的响应时间也都浪 ...

  6. 软件测试面试(2)LR篇

    一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...

  7. LR网页细分图中的时间详解

    Web Page Diagnostics: 1)DNS Resolution:浏览器访问一个网站的时候,一般用的是域名,需要dns服务器把这个域名解析为IP,这个过程就是域名解析时间,如果我们在局域网 ...

  8. LR 常见问题收集及总结

    一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...

  9. lr总结

    最近一直在用Loardrunner做性能测试,记录下自己在工作中遇到的问题. LR的基本设置 首先是录制,在录制前选择TOOLS-recording options 在General中选择record ...

随机推荐

  1. Pycharm创建的virtualenv环境缺失pip.exe的问题(Windows系统)

    Windows环境: 1. Python安装在d:\Python\Python35下, Python新版本安装时默认会勾选pip功能 2. PyCharm的Settings中Create Virtua ...

  2. 【Android Developers Training】 64. 绘制形状

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. 【Android Developers Training】 24. 保存键值对

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  4. 并发编程(三):从AQS到CountDownLatch与ReentrantLock

    一.目录      1.AQS简要分析      2.谈CountDownLatch      3.谈ReentrantLock      4.谈消费者与生产者模式(notfiyAll/wait.si ...

  5. 10.application对象

    1.application对象实现了用户数据的共享,可存放全局变量 2.application开始于服务器的启动,终止于服务器的关闭. 3.在用户的前后连接或不同用户之间的连接中,可以对applica ...

  6. accp8.0转换教材第1章多线程理解与练习

    一.单词部分: ①process进程 ②current当前的③thread线程④runnable可获取的 ⑤interrupt中断⑥join加入⑦yield产生⑧synchronize同时发生 二.预 ...

  7. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  8. docker学习笔记--重基础使用

    最近一直在研究Elasticsearch,后来部门的同事遇到了一个docker集群的未授权访问漏洞,于是稍微看了一下docker进行了一下基本的入门,本文把自己学习docker的过程进行了一个详细的记 ...

  9. 怎么在linux Ubuntu上部署nodejs

    今天特别开心,同时也有兴趣把最近的一些工作总结一下. 第一,方便记忆. 第二, 给需要的同学做参考 node.js 在本地的话,比较容易运行,node app.js 命令就搞定,但是当需要部署到生产环 ...

  10. 关于net mail组件ssl端口问题

    最近开发一个项目使用到.net mail组件发送邮件.在开发环境中一切正常,可是部署到阿里云服务器上死活发送不出去,一直连接不上,或者报语法错误. 然后是各种折腾,各种测试,最后发现,使用ssl的时候 ...