LoadRunner学习:RuntimeSetting、参数化、关联、(unfinished

本文详细解释了LoadRunner中的运行时设置,如RunLogic、insertblock块和Pacing的作用,强调了在性能测试中设置间隔(Pacing)以模拟真实用户行为的重要性。同时讨论了参数化和关联技术在模拟用户并发和请求依赖中的应用。
摘要由CSDN通过智能技术生成

在这里插入图片描述

LoadRunner RuntimeSetting

运行时设置
在Vuser中设置Run-time Settings
在这里插入图片描述

  • RunLogic:运行逻辑,决定了脚本真正执行逻辑, Init和End部分代码只能执行一次。决定脚本真正执行逻辑的意思是,在Run中的代码和Number of Iteration决定了真正运行的代码和迭代次数。在properities中可以选择Run中Action是顺序执行还是随机执行(如果随机执行可以自行配置每个Action中的概率。
    在这里插入图片描述
    讲讲insert block 块技术,可以单独控制每个块的迭代次数。下述示例图中即为Block1中Action1执行2次,Block0中Action2执行1次,整个Run再执行2次
    在这里插入图片描述
  • Pacing(步长):迭代间规则
    默认:as soon as…: 每次迭代无间隔时间
    After…:上次迭代结束后,再下次迭代开始之前,会有个等待时间
    at…从上次迭代开始到本次迭代开始的时间

为什么需要设置pacing?⭐️

评价一个系统的性能,需要从两个视角去看待:客户端视角和服务器视角即用户视角和系统视角。
有下述性能需求:“要去系统的事务处理能力达到100个/秒”
当LoadRunner模拟客户端向服务器发出请求,必须等待服务器对这个请求做出响应,并且收到响应之后,才会重新发出新的请求,而服务器对请求的处理是需要一个时间的,
即对每个虚拟用户来说,它对服务器发出请求的频率将依赖于服务器对这个请求的处理时间,而处理时间是不可控的。如果我们想要在测试过程中维持一个稳定的每秒请求数RPS,只有一个方法,就是通过增加并发用户数的数量来达到这个目的。

而在测试中,通常会对场景设置一个持续运行时间(多次迭代),通过多个事务的取样平均值来保证测试结果的准确性,即测试场景是以迭代的方式进行的。

如果不设置pacing,那么对于每个虚拟用户来说,每一个发到服务器的请求得到响应之后,就马上发送下一次请求。而LR中当客户将请求发出去之后,就开始计算响应时间,一直到收到响应。
这时,如果服务器处于忙碌状态,那么心情求就会驻留在服务器的线程中,并没有对服务器端产生真正的负载,这样这个计时就会变长,失去真正意义。

为了解决这个问题,我们可以在每两个请求之间插入一个间隔时间,降低单个用户启动请求的速度。间歇会减少请求在线程中驻留的时间,从而提供更符合现实的响应时间。

虽然性能测试通常从客户端活动的角度定义,但是应该以服务器为中心的视角看待。因此需要强调做性能测试的时候要保证一个独立、干净的测试环境,以及一个稳定的网络。要评价软件系统真正的性能,所以必须排除其他一切因素对系统性能造成的影响。

  • think time:思考时间,模拟用户的等待时间

在这里插入图片描述
假设每个做完整个操作需要5s,做完之后停顿5s,思考如果要达到每分钟有6000个在线用户,共10台服务器,需要多少个虚拟用户?
-----> 一个用户操作加等待需要10s,即一个用户一分钟可以迭代6次,一次迭代对应两次web_url()请求,即一分钟12次请求
那么6000/12 = 500; 500/10 = 50个用户。

  • 日志
  • 附加参数:自定义一些参数,再在脚本中传值
    如下为设置和使用示例:
    在这里插入图片描述

在这里插入图片描述

  • 线程模式/进程模式
  • 模拟网速

参数化与其他脚本增强技术

  • 参数化:实现不同用户的不同请求,逻辑相同,数据不同的操作。
  • 关联:用来解决请求之间的依赖
  • 事务:用来度量操作的响应时间以及最终TPS
  • 检查点:用来判断脚本是否成功
  • 思考时间:模拟用户延迟,调节负载压力
  • 集合点:模拟用户并发,是用来实现严格的并发

select next row:

  • 顺序取值
  • 随机取值
  • 唯一取值

update:

  • 每次迭代:
  • 每次出现:
  • 仅一次:

在这里插入图片描述

关联技术

解决请求之间的依赖。
在测试工具中,关联就是把某些写死的数据编程来自服务器的、动态的、每次不一样的数据 动态保存下来,然后在调用的地方调用即可
需要做关联处理的特征:

  • 关联数据一定是来源于服务器的响应
  • 关联数据一定要在后面的请求中被用到
  • 关联数据一定是动态变化的

在LR中,关联的方式分为自动和手动两种

  • 自动:
    • 录制关联(没用
    • 回放管理:理论上同样是对比法(慎用 成功率低
  • 手动:根据关联产生的原因,关联数据特征,以及业务熟悉程度来完成先存侯勇的操作
    • 对比法
    • 追溯法:依据关联的特征、数据特征逆向完成

手动关联的步骤:
1 找出出错的请求:
2 设置关联

todotodo


手动编写脚本 占坑
场景与结果分析 占坑

jmeter复习 占坑

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Runtime-Setting参数详解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次数。 一个Run中可以添加多个Action和多个Block,一个BLock中可以添加多个Action。 如何在一个脚本中实现不同事务不同次数的循环呢? 案例:假如你想在一个脚本中,实现登录执行1次,查询执行2次,插入执行3次,怎么办? 录3个Action脚本,我们只需要设置3个Block,每个Block中分别插入一个Action,设置执行次数分别为1,2,3就可以了; 另Block的properties。这里有两种选择,Sequential和Random,分别代表顺序执行/随机执行下属的Action
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值