Pacing转载自belie

1>     Run time setting设置中的Browser:‘Simulate a new user on each iteration’选项
例如:录制了一个脚本,设置了100个VU,每个VU的迭代次数为10次,正确运行时应该在系统中生成100×10条记录,但是,运行后发现这100个VU都只运行了一次,最终生成了100条记录。
原因是:
选中了Simulate a new user on each iteration,如果选中这一项,在两次迭代之间LR清除了cookie。
也可以把‘Clear cache on each iteration’取消选中
2>     录制脚本时在Recording option中的设置Recording项目
¨   HTML-base方式:
HTML-based 方式对每个页面录制形成一条语句,对LoadRunner来说,在该模式下,访问一个页面,首先会与服务器之间建立一个连接获取页面的内容,然后从页面中分解得到其他的元素(component),然后建立几个连接分别获取相应的元素
¨   URL-base方式
URL-based 方式将每条客户端发出的请求录制成一条语句,对LoadRunner来说,在该模式下,一条语句只建立一个到服务器的连接,LoadRunner提供了 web_concurrent_start和web_concurrent_end函数模拟HTML-based的工作方式
在录制脚本时选择那种方式呢:
¨       如果应用是WEB应用,首选是HTML-based方式
¨       如果应用是使用HTTP协议的非WEB应用,首选是URL-based方式
¨       如果WEB应用中使用了javaapplet程序,且applet程序与服务器之间存在通讯,选用URL-based方式
¨       如果WEB应用中使用的javascrīpt、vbscrīpt脚本与服务器之间存在通讯(调用了服务端组件),选用URL-based方式

在 LoadRunner 的运行场景中,有一个不大起眼的设置,可能经常会被很多人忽略,它就是 Pacing 。具体设置方式为: Run-Time settings à General à Pacing ,这个设置的功能从字面上就很容易理解,即在场景的两次迭代 (iteration) 之间,加入一个时间间隔(步进)。设置方法也很简单,这里就不赘述了,我在这里想说明的是,这个设置到底有什么作用?为什么要进行这个设置?说实话,虽然 我在以前做过的一些性能测试中,偶尔会对这个步进值进行一些设置,但其实对它的真正含义和作用,我还并不十分清楚。
前段时间,我在对X银行招聘信息系统进行性能测试的时候,发现这个值的设置对于测试的结果有着很大的影响,很遗憾当时没有深入研究这个问题,而只是简单地认为它同脚本中的 thinktime 一样只是为了更真实地模拟实际情况而已。最近在网络上看到一篇题为《调整压力测试工具》的文章,读完之后,再用之前我的测试经历加以印证,真有种豁然开朗的感觉。以下就将我的一些体会与大家分享:
通常我们在谈到一个软件的“性能”的时候,首先想到的就是“响应时间”和“并发用户数”这两个概念。我们看到的性能需求经常都是这样定义的:
“要求系统支持 100 个并发用户”
看 到这样的性能需求,我们往往会不假思索地就在测试场景中设置 100 个用户,让它们同时执行某一个测试脚本,然后观察其操作的响应时间,我们都是这样做的,不是吗?我在实际实施性能测试的过程中,也往往都是这样做的。可惜 的是,我们中的大多数人很少去更深入地思考一下其中的奥妙,包括我自己。
事实上,评价一个软件系统的性能,可以从两个不同的视角去看待:客户 端视角和服务器视角(也有人把它叫做用户视角和系统视角),与此相对应的,又可以引出两个让初学者很容易混淆的两个概念:“并发用户数”和“每秒请求数 ”。“并发用户数”是从客户端视角去定义的,而“每秒请求数”则是从服务器视角去定义的。
因此,上面所描述的做法的局限性就是,它反映的仅仅是客户端的视角。
对于这个世界上的很多事情,变换不同的角度去看它,往往可以有助于我们得到更正确的结论。现在,我们就转换一下角度,以服务器的视角来看看性能需求应该怎么样定义:
“要求系统的事务处理能力达到 100 个 / 秒” ( 这里为了理解的方便,假定在测试脚本中的一个事务仅仅包含一次请求 )
面 对以这样方式提出的性能需求,在 LoadRunner 中,我们又该如何去设置它的并发用户数呢?千万不要想当然地以为设置了 100 个并发用户数,它就会每秒向服务器提交 100 个请求,这是两个不同的概念,因为 LoadRunner 模拟客户端向服务器发出请求,必须等待服务器对这个请求做出响应,并且客户端收到这个响应之后,才会重新发出新的请求,而服务器对请求的处理是需要一个时 间的。我们换个说法,对于每个虚拟用户来说,它对服务器发出请求的频率将依赖于服务器对这个请求的处理时间。而服务器对请求的处理时间是不可控的,如果我 们想要在测试过程中维持一个稳定的每秒请求数( RPS ),只有一个方法,那就是通过增加并发用户数的数量来达到这个目的。这个方法看起来似乎没有什么问题,如果我们在测试场景中只执行一次迭代的话。然而有经 验的朋友都会知道,实际情况并不是这样,我们通常会对场景设置一个持续运行时间(即多次迭代),通过多个事务 (transaction) 的取样平均值来保证测试结果的准确性。测试场景以迭代的方式进行,如果不设置步进值(pacing)的话,那么对于每个虚拟用户来说,每一个发到服务器的请求得到响应之 后,会马上发送下一次请求。同时,我们知道, LoadRunner 是以客户端的角度来定义“响应时间”的 ,当客户端请求发出去后, LoadRunner 就开始计算响应时间,一直到它收到服务器端的响应。这个时候问题就产生了:如果此时的服务器端的排队队列已满,服务器资源正处于忙碌的状态,那么该请求会 驻留在服务器的线程中,换句话说,这个新产生的请求并不会对服务器端产生真正的负载,但很遗憾的是,该请求的计时器已经启动了,因此我们很容易就可以预见 到,这个请求的响应时间会变得很长,甚至可能长到使得该请求由于超时而失败。等到测试结束后,我们查看一下结果,就会发现这样一个很不幸的现象:事务平均 响应时间很长,最小响应时间与最大响应时间的差距很大,而这个时候的平均响应时间,其实也就失去了它应有的意义。也就是说,由于客户端发送的请求太快而导 致影响了实际的测量结果。
因此,为了解决这个问题,我们可以在每两个请求之间插入一个间隔时间,这将会降低单个用户启动请求的速度。间歇会减少请求在线程中驻留的时间,从而提供更符合现实的响应时间。这就是我在文章开头所提到的 Pacing 这个值的作用。
最 后再补充一句话:虽然性能测试通常都是从客户端活动的角度定义的,但是它们应该以服务器为中心的视角来看待。请注意这句话,理解它很重要,只有真正理解了 这句话,你才会明白为什么我们一直强调做性能测试的时候要保证一个独立、干净的测试环境,以及一个稳定的网络,因为我们希望评价的是软件系统真正的性能, 所以必须排除其它一切因素对系统性能造成的影响。

转载于:https://www.cnblogs.com/shengs/p/4686086.html

Run time setting设置详解相关推荐

  1. AWARD BIOS设置详解

    AWARD BIOS设置详解 AWARD公司是世界最大的BIOS生产厂商之一,其产品也被广泛使用.但由于AWARD BIOS里面的信息都是基于英文且需要用户对相关专业知识的理解相对深入,使得普通用户设 ...

  2. 计算机bios设置论文,玩转电脑必看知识——各种BIOS设置详解 的更多相关文章

    7.IDE Primary Master UDMA(第一个IDE主控制器下的UDMA模式) 8.IDE Primary Slave UDMA(第一个IDE从控制器下的UDMA模式) 9.IDE Sec ...

  3. Android 系统属性读取和设置详解

    Android 系统属性读取和设置详解 一.在adb中进行属性读取和设置 1.Settings Provider设置和读取 获取 设置 2.SystemProperties属性读取和设置 二.Andr ...

  4. 计算机CMOS设置详解

    计算机CMOS设置详解 2011年05月30日 [b]计算机CMOS[/b][b]设置详解[/b][b][/b] [b]友情提示:[/b] [b] [/b][b]计算机爱好者们,当你走入计算机的世界, ...

  5. [转]Windows下安全权限设置详解

    一 Windows下安全权限设置详解 [简 介] 随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80 ...

  6. 全球著名音乐抓轨软件EAC 设置详解

    EAC的作者Andre Wiethoff是德国多特蒙德大学计算机专业的一名学生,经常抓取和监听各种WAV文件,所以使用了许多抓音轨的软件,但令他不满意的是,这些软件只有 时基误差的校正,而CDROM在 ...

  7. Win7 NFS 设置详解 | X-Space

    Win7 NFS 设置详解 | X-Space Win7 NFS 设置详解

  8. Windows权限设置详解

    Windows权限设置详解 随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式***越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80端口对外开放的WEB ...

  9. Windows 7防火墙设置详解(三)

    Windows 7防火墙设置详解(三) 一.如何禁用或启用规则 方法:只需要在需要禁用或启动的规则上,鼠标右键选择启用或禁止规则即可,或点击右侧的操作栏进行规则启用或禁止. 二.入站规则和出站规则 由 ...

最新文章

  1. 洛谷P2429 制杖题 [2017年6月计划 数论10]
  2. P3321 [SDOI2015]序列统计(离散对数下NTT,乘法换加法)
  3. 【加密U盾】在LINX操作系统中部署KD电子钥匙
  4. 超适合新手的基础Linux命令
  5. 基于界面的银行家算法java实现_java实现银行家算法(Swing界面)
  6. python 让异常名称显示出来
  7. python模块下载连接清华镜像的具体步骤_anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...
  8. 搜狗输入法精简_搜狗输入法10.10去图标精简版+9.4.21小米定制版
  9. cad插入块_CAD 自定义图块插入图块时图形离插入点很远怎么办?【AutoCAD教程】...
  10. esp分区引导修复失败_ESP分区丢失,新建ESP分区修复引导教程
  11. 电脑定时执行的软件 - 定时执行专家
  12. 机器学习 | 牛顿冷却定律
  13. python基础(1)---python简介
  14. 华为笔记本电脑计算机在哪里打开,华为笔记本电脑有摄像头吗
  15. 浅谈卡尔曼滤波(Kalman Filter)(一)
  16. Pytest系列——allure(原理)之allure工具与Pytest测试框架集成
  17. Synergy v1.10版本跨平台鼠键共享资源
  18. SQL修改视图中列名和字段长度
  19. 20162316刘诚昊 第八周学习作业
  20. MATLAB利用FFT对信号进行频谱分析

热门文章

  1. (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客
  2. gcc与gdb,函数小结
  3. 【玩转.Net MF – 03】远程文件查看器
  4. ckeditor富文本编辑器的基本配置设置:
  5. 列出AD用户Lockout 位置
  6. Spring MVC + Hibernate JPA + Bootstrap 搭建的博客系统
  7. 本日吐槽!“人傻钱多”的P2P公司是否是程序员的合适选择(群聊天记录的娱乐)...
  8. Spring注入service为null另类解决办法 工具类 一般类 静态 非controller
  9. dedecms首页搜索 添加仿百度下拉框
  10. 电脑右键没有新建按钮解决办法