本文主要讲解一下run-time settings(如图1所示)里各设置项的具体含义(注:标红色的选项卡是比较值得关注的,可重点看一下):

图1

1、General / Run Logic 选项卡

    主要用来设置运行时脚本迭代的次数,迭代次数只对run部分的脚本迭代次数有影响,而对int和end部分并没有影响。一般设置为1~3次,只会影响在单位时间内客户端向服务器提交的HTTP请求数,其他的没有影响。

  Number of Iterations:说明的是反复循环的次数。 常境的时间中,如果时间设为5分钟,而实际上程序的运行只需要1分钟,而在这项中,选择的是1次的话,那程序就运行完一次后,就不会再运行。相同的,如果在这一项中选择的是3次的话,那程序在运行后第一次后,还会再运行第二次,第三次。也就是说,在规定的时间和循环次数中,程序Run模块的运行不超过规定时间时,那程序Run模块会运行到规定的时间,不设定时间也可以进行循环。 

  Insert Action:为模块Init, Run和End再添加Action。

  Insert Block:为模块Init, Run和End添加阻碍。添加第一次为Block0,子目录为:No Actions;添加第二个为Block1,子目录为:No Actions,以此为推。 Delete:删除。删除每个模块下的Action Move Up:移动下面的模块到上一层 Move Down:移动下面的模块到下一层 。

  Properties:确定Run logic中各Action的循环顺序和Iterations次数。

2、General /Pacing 选项卡

     主要用来设置脚本迭代过程中脚本之间的时间间隔,如在第N次脚本迭代完成后,等待5s后进行第n+1次脚本迭代。

as soon as the previous iteration ends:在多次迭代时,上一次迭代执行结束后马上执行下一次迭代(如图2所示)

图2

after the previous iteration ends:可以设置为fixed或random方式。

fixed方式表示上一次迭代执行结束后,等待一个固定时间后,再执行下一次迭代(如图3所示);

图3(上一次结束后6s执行下一次迭代)

random方式表示上一次迭代执行结束 ,等待一个随机时间后,再执行下一次迭代,随机时间范围为设置的范围(如图4所示)。

                                   

图4(设置的随机范围为1~4s)

at fixed/random intervals。表示上一次迭代开始到下一次迭代开始之间的时间间隔,如果设置的时间达到后无论上一次迭代执行是否完成,到达规定的时间就开始执行下一次迭代,包含fixed和random两种方式。fixed表示一个固定的时间长度;random表示一个随机的时间长度,随机值范围为设置的范围。

图5(设置固定时间长度2s,上一次开始后2s执行下一次迭代)

综合上述可以看出第一种选择对服务器的压力最大,因为这个选项在单位时间内所做的业务数最多,即单位时间内提交的请求数最多,所以服务器的压力最大。因此如果进行压力测试时,可以需要该选项。

3、General /Log 选项卡

主要用于设置脚本回放时的日志格式。LR一共包括4类日志文件,即

replay log(回放日志):是脚本回放时lr记录的日志信息,包括客户端与服务器之间的通信日志和HTML源码录制时的快照信息,但该日志信息的内容取决于log选项卡中extended log选项的设置情况。

recording log(录制日志):是录制脚本时产生的日志,主要是客户端和服务器端通信时的一些交互信息。

correlation results(关联结果):是当脚本需要关联时,在回放脚本过程中会记录录制和回放时需要关联内容的值。

generation log(生成日志):脚本生成时产生的日志。

  Enable Logging:是否启动日志功能 ,即在场景运行过程中是否收集日志信息。

Log options 
     Send messages only when an error occurs: 当脚本回放时出现错误信息时才收集日志,也即只收集错误日志信息。
     Always send messages :收集所有日志信息,不管是正确的还是错误的日志信息。

Log message at the detail level of 日志的详细内容:

       Standard log 标准的日志文件
    Extended log扩展的日志文件:
      Parameter substitution 表示客户提交给服务器端的所有参数会记录在日志文件中。
      Data returned by server 表示不仅包括Parameter substitution的信息,还包括服务器返回到客户端的信息也会被记录。
      Advanced trace 表示所有客户端提交和服务器返回的信息都会被记录。
一般情况将日志信息设置为扩展的Parameter substitution即可 ,如果选择其他的两种,那么产生的日志信息会很多,这样日志文件很大。

4、General /Think Time 选项卡

用来设置用户操作的思考时间(思考时间是指每个HTTP请求之间的时间间隔)

  ignore think time:运行脚本时忽略思考时间,即上一个HTTP请求结束后,直接运行下一下HTTP请求,不等待。

  replay think time:设置脚本回放时思考时间,包括as recorded、multiply record think time by 和use random percentage of recorded think time三种方式。

  as recorded:按录制时的思考时间来回放,即如果录制时间思考时间为9s,那么回放时也按9s来计算(如图6所示):

图6

  multiply record think time by :根据录制时思考时间的整数倍来运行(如图7所示):

图7(按录制思考时间的2倍来回放)

  use random percentage of recorded think time:分别设置一个最大值和一个最小值,并从中选出一个随机值,在实际使用过程中一般会选择这种模式,设置最小值为50%,最大值为150%(如图8):

图8(按录制思考时间的0.5~1.5倍来回放)

  limit think time to:设置think time的最大值。如果上面的设置项,在回放时使用的思考时间超过所限制的时间,那么以该限制时间为准进行回放(如图9所示):

图9(限制思考时间为3s)

综合上面的情况,设置为忽略思考时间时,对服务器的压力最大,因为在同样的场景执行时间内,HTTP请求之间的时间缩短说明向服务器提交的请求数增多了,所以服务器的压力增加,如果进行压力测试时,可以选择该项设置。

5、General /Additional attributes 选项卡

  添加一些不是系统本来就有的属性参数,可以获得不同客户端的值。  

6、General /Miscellaneous 选项卡

  是一个复合选项,涉及的功能比较复杂,包括3个设置项:

Error Handing  (表示脚本运行出现错误时所采取的措施,默认使用缺省值):

  continue on error:即使遇到错误也继续执行脚本.

  Fail open transactions on lr_error_message: 当lr_error_message这个函数被transaction内部的脚本调用的时候,无法打开所有的transaction

  Generate snapshot on error:当遇到error的时候就自动产生快照.

Multithreading (表示运行时把虚拟用户当作进程还是线程来处理):

     Run Vuser as a process:把每个vuser的运行当成一个进程. 
  Run Vuser as a thread:允许多线程,并且每个generator可以运行多个 vuser.
在工作中应该分析系统在客户端以进程还是线程运行,再来判断选哪个设置项。
注意:当以进程方式运行虚拟用户时,在负载机中的任务管理器中可以看到,每个虚拟用户才会产生一个进程,进程名为mmdrv.exe,如果以线程的方式运行时,任务管理器中则不会有这个进行,并且每个进程都需要消耗资源,通过这项数据可以计算出每台负载机最多可以并发多少虚拟用户数。

Automatic Transactions(设置事务的模式):

  define each action as a transaction:自动把每个action当作一个事务. 
  define each step as a transaction:自动把每一个步骤当成一个事务.  

7、Network / Speed Simulation 选项卡

  Use maximum bandwidth:所有Vusers使用系统允许的最大网速,该项为缺省选项。 
  Use bandwidth:可以在预定义好的下拉框中选则Vusers使用的最大带宽限制。
  Use custom bandwidth(bps):手动输入Vusers使用的最大带宽限制。带宽单位为bits。 

8、Browser / Browser Emulation 选项卡

  Simulate browser cache:配置Vuser模拟带缓存的浏览器。缺省缓存是被允许的,可以通过禁止该选项来使得所有VUser模拟的浏览器都不带缓存。

  Cache URLs requiring content(HTMLs):设置浏览器缓存URL的上下文(比如,HTML语法,认证或校验等),其他的URL的上下文不会被缓存,以减少内存使用。可以通过点击Advance来定义需要上下文的URLs。

  Check for newer versions of stored pages every visit to the page:通过在header中添加If-Modified-Sinces属性来设置浏览器检查比当前存储在缓存中特定URL更新的资源。缺省情况下,浏览器不会自动检测更新的资源。

  Download non-HTML resources:设置Vusers在刷新网页时下载图片。当real users访问网页时,需要等待图片的加载完成。如果用户想要测试整个系统,包括终端用户时间,则需要勾上该选项。如果需要提高性能且不需要模拟真实的用户,则不要选该项。 

  Simulate a new user on each iteraton:设置VuGen在每个循环的init会话结束,重启多有的HTTP上下文。这样使得Vuse更加真实的模拟一个新user开始一个浏览会话。该选项缺省是被选中的。

  Clear cache on each iteration:当每个循环模拟一个最新访问站点的user时,则要选中该选项。当每一个循环模拟一个最近访问过站点的user,浏览器仍为该用户保留网页(从前面的循环中使用缓存页面)的情况则不要选中该选项。

9、Internet Protocol / Proxy 选项卡

  No proxy(direct connection to the Internet):所有的Vusers不使用代理,直接方式连接到互联网。

  Obtain the proxy setting from the default browser:所有的Vusers使用机器上运行的浏览器的缺省代理设置。该选项为缺省选项。

  Use custom proxy:所有Vusers使用自己设置的代理方式连接到互联网。

10、Internet Protocol / Preferences 选项卡

  Enable Image and text check:允许在执行期间检查图片或者文字的检查点。该选项仅适用于Html类型的脚本。另外,使用该选项会使用更多的内存。因此,系统默认该项是不选的。

Hits Per Second and HTTP Codes:该选项用来显示每秒点击率以及每秒HTTP相应图。选中后,可以在场景运行的时候动态看到该图,也可以在Analysis分析中看到该图。

  Pages Per Second(Html Mode Only):选择该项后,可以产生每秒页面图,可以在场景运行或者在Analysisi中看到该图。

  Response Byte per Second:选择该项后,可以产生每秒接收字节图,可以在场景运行或者在Analysisi中看到该图。

  Winlnet Replay Instead of Sockets(Windows only):仅仅用于Windows操作系统,选中该项后,使用Wininet Replay 引擎。注意:该选项在Socket Replay引擎失败后才可以使用。

  File and Line in Automatic Transcation names:用文件名和行号给自动化的Transction命名,该选项默认是选中的,注意该项选中会使用更多的内存。

  Critical Resource Errors As Warnings:非关键性的Fail作为Warning发送。例如:页面非关键的图片没有显示,或者某个非关键的JavaScript没有运行。该选项默认是选中的。

  Save Snapshot Resources Locally:本地保存场景的运行状况。该选项可以使用户更快更精确的看到场景运行状况。

Options: 

DNS Catching:保存DNS的IP地址。

Http Version:表明你的程序使用的Http版本。

Keep Alive Http Connections:允许长期保存Http连接,这样可以使多个需求通过相同的TCP连接。

Step Timeout Caused by Resources is a Warning:对于资源申请超时发布Warning而不是Error。

Parse HTMLContent-Type:对于HTML,当反馈内容是text/html(HTML),’text/’(TEXT)或者Content-type(ANY)时才进行解析。注意:text/xml不会被解析为XML类型。

  Accept Server-Side Compression: 表明回放的时候Server端可以接收压缩数据的情况。注意,接收压缩数据会引起额外的开销。

  Accept-Language request header: 可以接受语言中以逗号分隔。

  HTTP –Request Connect Timeout(Sec):对HTTP要求的连接操作时间限制,或者连接失败的时间限制。

  HTTP –Request Receive Timeout(Sec):对HTTP要求的接收时间限制,或者失败时间限制。

  Step download timeout(sec):一个完成的Script功能的完成时间限制,或者失败时间限制。

  Network buffet size:Vuser可以使用的最大网络buffer大小,默认为12288。

  Fixed think time upop authentication retry(mesc):模仿用户输入用户名和密码的时间。注意,这个作为事务时间的一部分。

  Request Zlib Headers:当送到Server的需求数据是压缩的时,包含Zlib压缩库的头部。

  Max Number of <META Refresh> to the same page:同一个页面可以打开的个数。

  GUI-Mode default block size for DOM memory allocations:默认的DOM Blocak内存分配大小,太小会出现一些额外的内存调用失败以及操作,太大会造成内存浪费。

  GUI-Mode single setTimeout/setInterval thresh hold:超过了SetTimeout设置的值,SetInterval的设置无效。该设置模拟了用户在等待超过一定时间后会点击下一个元素。

  GUI-Mode Accumulative setTimeout/setInterval threshold:超过了SetTimeout设置的值,忽略SetInterval。

  GUI-Mode fail on javascript error:对于Javacript的错误,如果选择Yes,提交一个Fail;如果选择No,提交一个Warning。

  GUI-Mode History Support:是否支持历史记录。如果选择Auto,则仅仅记录第一次循环的情况。

  GUI-Mode Maximum history size:最到可以保存在历史记录中的步骤。

11、Internet Protocol / Download Filters 选项卡

  如果选择Include Only Addresses In List, 表示重放只能限制在列出的WebSite或者是hosts中。

  Exclude Address in lists:重放地址要排除列出的Website或者是hosts。 ContentCheck:

Enable ContentCheck During Replay:选择该项可以是用户得到Web Server发送回的Error。

12、Internet Protocol / ContentCheck 选项卡

  Enable ContentCheck During Replay:选择该项可以是用户得到 Web Server 发送回的 Error。

loadrunner - Run time Settings 的详细说明的更多相关文章

  1. 坑:找到LoadRunner中Recording Options和 Run Time Settings配置选项确实的原因

    在loadrunner安装好后,打开页面查看发现分别的缺失内容如下: 现象: 1. Recording Options 2.Run Time Settings 3.解决 原因是LR是付费的,你的安装包 ...

  2. maven的settings.xml详细说明

    转自:http://writeblog.csdn.net/ <?xml version="1.0" encoding="UTF-8"?> <s ...

  3. Loadrunner 11 中Run-Time Setting详细参数说明

    .General/Run Logic :用来设置运行脚本迭代的次数,迭代次数只对run部分的脚本迭代次数有影响,对init和End部分无印象.一般设置未1~3次,只会影响在单位时间内客户端想服务器提交 ...

  4. loadrunner 脚本开发-web_custom_request函数详细介绍

    脚本开发-web_custom_request函数详细介绍 by:授客 QQ:1033553122 c语言版本: int web_custom_request(const char *RequestN ...

  5. LoadRunner Agent Runtime Settings Configuration启动报错

    解决方法: 关闭负载机器上的防火墙功能即可解决

  6. LoadRunner面试题

    在LoadRunner中为什么要设置思考时间和pacing 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...

  7. HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版

    HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版 Tylan独家呕血翻译 转载请注明出自“天外归云”的博客园 Welcome to the LoadRun ...

  8. 转:45 个 LoadRunner 面试问题(附答案)_纯英文,太有逼格了

    What is load testing? - Load testing is to test that if the application works fine with the loads th ...

  9. LoadRunner在移动端性能测试的应用

    摘选自 <精通移动app测试实战:技术.工具和案例>新书上市 如果大家之前做过性能测试,我相信一定会应用过大名鼎鼎的性能测试工具-LoadRunner.目前LoadRunner的最新版本为 ...

随机推荐

  1. Navicat Premium解决连接mssql报错的问题

    连接名:mssql_172.16.30.21:1433,每次打开查询时就报错. 重启,重转都不好使. 解决办法:去掉“:1433”,因为文件目录不支持“:”,所以一直报错.问题终于得到解决.

  2. jsp中遇到Integer的方法valueOf()和parseInt()的区别.前者要求是对象类型,后者是数字型字符串

    他们有本质区别,Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完 ...

  3. 走迷宫(用队列bfs并输出走的路径)

    #include <iostream> #include <stack> #include <string.h> #include <stdio.h> ...

  4. IDEA中修改各个部位的字体大小

    1.菜单栏 Setting -> Appearance&Behavior -> Appearance ->Override default fonts by (not rec ...

  5. 简单的自动化测试模型(python+selenium)

             刚接触自动化测试,由于没有编程语言的基础,是搞不懂代码里面的函数.封装.包以及其他概念,只是了解字符串.数组.元组及字典这种最基本的名词,更不懂自动化测试框架了.          ...

  6. Creating Self-Signed SSL Certificates

    http://weblogic-wonders.com/weblogic/2011/05/25/ssl-configuration-for-weblogic-server/ http://m-butt ...

  7. c# 数据拼接成键值对格式

    public static object FindLayoutTypes() { //地鼓.地裂.墙裂.井水.泉水 var sb = new StringBuilder(); sb.Append(ge ...

  8. 关于setConnectTimeout和setReadTimeout的问题

    1.问题描述 这几天测试重构后的下载框架,发现在下载过程中如果网络中断或网络较差,个别应用的下载就会阻塞卡住,一直卡在 “正在下载 xx%”.   2.问题排查和定位 思考:网络差不应该报网络异常的错 ...

  9. 迷你MVVM框架 avalonjs 0.97发布

    在本版本中,王之三柱臣全部就位! mmRouter: https://github.com/RubyLouvre/mmRouter mmAnimate: https://github.com/Ruby ...

  10. jsp的静态导入

    <body> <!-- include 包括 包含 页面相互引用 静态引入 把多工文件 合并为一个文件 然后在编译 不要有重复的变量 --> <h1>this is ...