发布新日志

  • Loadrunner中设置迭代和不设置迭代?

    2011-12-01 17:36:53

    总的时间 包括 开始时间 持续时间 和结束时间  3部分 你所说的5分钟只是持续时间 是一部分

    LR 的Vugen和controller中迭代是这样的:
    当场景的持续时间为“运行至结束”时,以Vugen中设置的迭代次数为准
    当场景的持续时间为“具体的几分钟时间”时,忽略Vugen中的迭代次数,脚步的action重复迭代,直到时间结束为止,按退出策略,执行退出操作
  • 为什么lr分析结果中的事物中没有vuser_int事物和vuser_end事物了呢

    2011-11-29 15:49:55

    打开run-time settings,点击General->Miscellaneous,把define each action as a transaction前面的复选框沟上,然后再运行场景,这样在结果分析里头,就有vuser_int和user_end
  • Loadrunner 参数设置

    2011-11-29 15:09:08

    首先我们先看一下再Loadrunner参数管理器中的2个设定项select next row和update value on,很多朋友在刚开始接触参数化时会对这2个设定项产生混淆,我们可以从2个特定的维度和覆盖角度进行理解:


    Select next row 是针对于所有vu的取值方式进行限定的,此指标是针对于全局的

    Update value on是针对每一个用户每一次循环过程中如何更新值进行限定的


    根据上面的定义,我们来逐个对这2个设定项内的选项进行说明

    Select next row

      Sequential:所用用户分配相同参数,以顺序方式进行分配

      Random:所有用户分配随机参数,以随机方式进行分配

      Unique:所有的用户分配不同参数,以顺序方式进行分配

    Update next row

    Each iteration:当前循环内值不变

    Each occurrence:当前循环内只要触发就进行值的更新

    Once:执行过程中不更新(即在脚本执行前进行取值,然后在执行过程中均取该值

    然后我们就可以根据这样的句式来理解参数分配的方式:当脚本开始时,为< --select next row -- >,在< -update next row -- >。通过这样的方式对在执行过程中参数分配方式可以有更直观的理解;


    下面我对以上的选项做一个排列组合,供大家参考

     
     Sequential
     Random
     Unique
     
    Each iteration
     所有vu均取参数列表的第一行,在循环结束后取第二行
     所有vu随机选取参数列表内参数,在循环结束后取第二个随机数
     所有vu按顺序取不同值,在循环结束后取下一个未被使用的值
     
    Each occurrence
     所有vu均取参数列表的第一行,在当第二次出现时取第二行值,即使在同一迭代内
     所有vu随机选取参数列表内参数,在当第二次出现时取第二个随机数,即使在同一迭代内
     所有vu按顺序取不同值,在第二次出现时取下一个未被使用的值,即使在同一迭代内
     
    Once
     所有用户取参数列表的第一行,在脚本执行过程中均为该值
     所有用户随机选取参数列表内唯一参数,在脚本执行过程中均为该值
     所有vu按顺序取不同值,在脚本执行过程中均为该值
     


    在参数设置的过程中,可能会遇到参数列表内数据量小于(VU*循环数)的情况,若可能出现该情况的组合中,参数管理器中会出现when out of value选项,来配置参数用尽后的操作方式,我们可以选择退出vu,从新轮循以及使用最后一个值,根据测试需求设定即可


    对于Allocate Vuser values in the Controller选项一般情况下默认选择 Automatically allocate block size即可,若选择手动设定则block size的数量需于脚本循环数对应。


    以上对Loadrunner参数化设置进行了说明,现在我们再来看一些在实际使用过程中比较实用的参数设置方式


    Iteration Number:返回当前循环次数

    UserID:返回当前VU 的ID值

    Group Name:返回次脚本在当前场景内Group名称

    Load Generator Name:返回脚本执行的测试机名称


    在脚本参数化的过程中,以参数的应用对脚本执行回馈有着很大的帮助,在脚本执行完毕后如果需要查询和统计每个VU的参数取值以及执行情况,则这些参数化的使用将使你受益良多。


    其次由于以上参数类型具有一定的唯一性,可以通过适当的组合来获得一组有规则可循的唯一值,在后期性能分析过程中的数据分析阶段事半功倍。


    例如我们可以用UserID+Iteration Number来确定一个唯一值作为脚本内某些数据的参数使用,则省去了繁琐的数据准备及设置工作并且容易查找;同理,在多脚本或多测试机执行的场景中可以加入Group Name以及Load Generator Name来区分。


     

  • 调试Loadrunner压力脚本实例

    2011-11-29 10:28:40

    测试对象:基于B/S结构的应用程序,管理员创建用户

    操作步骤如下:

    1:录制脚本:用户登录,创建用户,用户退出登录

    2.回放脚本

    期望值不成功,因为不能创建同名的用户

    3.修改脚本  参数化:显示名,邮箱地址和用户名,分别添加三个参数,p1,p2,p3,设置参数的属性P1.每次遇到就顺序更新值,P2和P3的取值是Same line as p1。

    4.参数文件中有3个不同的用户

    5:回放脚本,期望会创建三个不同的用户,回放成功

     

     

  • ZT:LoadRunner脚本的参数设置-block篇

    2011-11-29 09:34:54

    一、问题引入:当我们在Run中添加一个Block0,并在Block0中添加需要的Action,同时给Block0设置运行逻辑,比如按顺序运行10次(Run Logic为Sequential,Iterations为10)。如果Block0中的Action含有参数,那么该参数应该如何设置?

       其实参数设置最主要的有三个:Select next row、Update value on和When out of values。其中Update value on的值可选的是Each iteration、Each occurrence和Once。而它们的意思分别如下:

    (1)Each iteration是指每次迭代时更新值,但这个迭代其实只针对Run-time Settings中,选项Run Logic的Run的Iterations,对Run中的Block是不起作用的。也就是说,当Run迭代了10次,同时Run中的Block0也迭代10次的时候,每Run一次,会更新一个参数值,而Block0迭代10次时都使用这个参数值,不会再去更新参数值了。也可以这样理解,每一个Block其实相当于我们自己在脚本里面写一个for循环,去循环调用Block中的Action,此时Each iteration当然只对Run有效。

    (2)Each occurrence是指每次参数出现时就更新值。

    (3)Once是指只取值一次。

    显然,在这种情况下,Update value on只能选择Each occurrence。另外当我们选择了unique和Each occurrence后,LR要求我们设置Allocate …values for each Vuser,这个值与虚拟用户数和参数化值有关,例如:设置Allocate 5 values for each Vuser,虚拟用户数是10个,那么参数化的值至少需要50个(前提是选择了unique选项)
    二、Each occurrence带来的问题:

    1. 问题引入:

    当我们在进行某个参数设置时,有时Update value on不得不选择Each occurrence(类似一中所述情况),但是,如果Action中有多个相同的参数时,此时参数会在每次出现就更新值,这不是我们所期望的,应为每次执行Action时,同一个参数的值应该都是一样的,否则实际业务操作将运行失败。

    2. 解决方案:

    其实解决方法很简单,所有相同的参数以不同名字命名(如,P1,P2,P3…),每个参数指向同一个Dat文件,对参数P1进行相应的设置,接下来其他参数的Select next row选择Same line as P1,这样所有的参数的值的更新机制和P1一样,每次行Action时,同一个参数的值就都是一样了。

    三、Dat文件记录读取原理:

    Controller在运行时,会首先初始化Vuser脚本,以检查脚本是否有语法错误,以及为各个虚拟用户分配参数值。而分配参数值的时候,本人猜测它是根据需要读取的参数数量循序或者随机读取Dat的记录(一行为一个记录),当记录个数不足时,就会抛出错误提示。因此我们在选择文件源是,就要多加小心,以防止Controller自己“错乱方寸”:

    1.不同参数(对应相同的列)对应的Dat文件要不同,若想指向同一文件,则参数设置“Select next row”应选择“Same line as…”

    2.不同Vuser脚本不要使用同一个Dat文件。

     

    实例:

     

  • lr一个参数如何添加100个以上的值

    2011-11-24 18:12:04

    C:\Program Files\HP\LoadRunner\config中有个vugen.ini文件,在此文件中有个“[ParamTable]
    MaxVisibleLines=100”你可以改下

  • Loadrunner 结果分析--

    2011-11-17 16:58:30

    1.Hits per second(每秒点击数)反映了客户端和线秒钟向服务器提交的请求数量,如果客户端发出的请求数量越多,与之对应的Average Throughput(byte/second)也应该越大,并且发出的请求越多会对平均事务响应时间造成影响,所以在测试过程中往往将三张图结合起来分析,如果Hits per second和Average Throughput(byte/second)两种图形曲线都正常并且基本一致,说明服务器能及时接受客户端的请求,并能够返回结果,如果Hits per second正常,Average Throughput(byte/second)不正常,表示服务器能够接受客户端的请求,但返回结果较慢,可能是的程序处理缓慢,如果Hits per second不正常,说明客户端存在问题,那种问题一般就是网络引起的,或者录制的脚本有问题,未能正确的模拟用户的和地为,具体问题具体分析。
  • 平均事务响应显示一个点的原因

    2011-11-17 16:40:00

    问:loadrunner9.0 在进行性能测试时,插入了集合点,在结果分析中平均事物响应时间怎么显示的是一个点?

     

    答:

    减小取点时间
    默认是5秒取一个点
    可能是你的事务太快了
    设置成1秒取一个点试试
    对场景中的图标右键,选configure,在弹出界面中设置

     

     

  • Loadrunner error

    2010-12-25 15:11:29

      一、Step download timeout (120 seconds)
    这是一个经常会遇到的问题,解决得办法走以下步骤:
    1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000。run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数。
    2、办法一不能解决的情况下,解决办法如下:
    设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。  
      

    2:http500的错误

  • Loadrunner1

    2010-12-24 15:30:03

    问题1:Monitor name :Windows Resources. Cannot connect to machine 192.168.1.4.
    Reason: 拒绝访问。

    解决方法:LoadRunner 添加 Windows监听器需要进行的相关设置(下面都是对被监视服务器的操作):

          1、共享C盘;(一般情况下,C 盘是共享状态,无需处理)

          2、保证如下服务开启:
             a、Remote Procedure Call (RPC)
             b、Remote Procedure Call (RPC) Locator
             c、Remote Registry
             d、Workstation

          3、本地安全设置-->安装设置-->本地策略-->安全选项,“网络访问:本地账户的共享和安全模式”项选择“经典 - 本地用户以自己的身份验证”

     

  • 学习loadrunne第三天

    2010-09-03 10:38:33

    问题1:关于LoadRunner 的场景设置duration选项

    在场景设置duration选项(Duration:run for 00:02:00)不知道是duration是表示每个用户只运行2分钟,还是所有用户登陆成功后,再一起运行2分钟。

    脚本介绍:vuser_initvuser_end二部分都为空,action部分的脚本打开几个网页。

    经过四次的测试,Duration选项一直为run for 00:02:00,每次更换Start Vuser的设置,结果如下:

    Start Vuser:51用户登陆,共1用户。

    Start Vuser:51用户登陆,共2用户。

    Start Vuser:1分钟1用户登陆,共2用户。

    注:第一个用户运行三分钟

    Start Vuser:2分钟1用户登陆,共2用户。

    注:第一个用户运行四分钟

    通过Action的数:

    29

    45

    57

    69

    ActionTPS

    0.3

    0.3

    0.4

    0.4

    点击率

    8.152

    12.333

    11.085

    9.936

    Action的平均事务时间:

    4.087

    5.445

    5.299

    5.255

    从上表中可以知道,durationrun for 00:02:00是所有用户登陆成功后,再一起运行2分钟。通过不同设置,会导致点击率和平均事务时间有变化,设置场景时要慎重考虑。

    问题二:集合点与手动场景设置中的加压方式的区别

    有很大区别的,集合点可以使脚本的任何一个transaction进行并发,但是手动场景设置中的每秒钟运行多少用户,或者所有用户一起运行,这只能在开始的地方即初始化部分开始,作用不同,差别也很大
    所有用户一起运行,是在开始时达到并发的目的,而在运行的过程中,各个用户到达的程度就不一样了。集合点就是到达集合点的时候对集合点策略进行判断,如5个人并发,系统判断一下,够5个人了么,够了的话,系统就把这5个人一下全放过去,有点和开始时的策略一致,不同的时,集合点是对策略内部细致的设置。
     
    问题三:

    1、  需要注意的地方:当在“Parameter List”中的“Select next row”选中“Unique”时,如果再在“Edit Schedule\Schedule by Scenario\Duration”中选中第二项“Run for XX after the ramp up has been completed”时系统就会报错,提示“Unique”类型不相符。

Open Toolbar