关于LoadRunner的迭代

LoadRunner——在线综合场景测试(六) 多用户、多任务、在线执行一段时间。 阅读详情

    通过用lr做负载压力测试过程发现,如果设定不同的action迭代次数,每次得出的结果是不同的,曲线的表现形式也是不同的。这点就使我们会感觉困惑,为什么要设置action的迭代次数?以及对于不同的应用系统应该怎样设置迭代次数呢?

    首先你要理解性能测试是在干什么?

    性能测试是模拟系统一段时间内真实的压力情况,以考察系统的性能。

    再看怎么模拟系统真实的压力情况?比如在半个小时内,用户都在进行登录操作,且平均分布在这半个小时内。我们要做的是什么?模拟这半个小时用户的行为。怎么模拟?估算出同时操作的人数,并用LoadRunner不断的发送登录请求,这就是我们为什么要迭代。

     至于迭代次数,只要能够模拟出真实情况,多少次都无所谓,不过10次8次估计是模拟不出来。迭代次数至少要保证压力达到一个稳定值后再运行一段时间,这样我们得到的数据才是有效的。所以我们除非是特别要求,一般不用迭代次数,而是用运行时间。 




    1,迭代和并发,是完全不同的概念。没有什么关系。

比如,一个用户迭代十次,还是一个用户的压力。

10个用户执行一次,就是10个用户的压力。10个用户迭代10次,还是10个用户的压力。但他们都和参数化的数据有关系(也要看参数化是如何设置的,以及系统如何判断提交值的)。

    2,你要是想知道,LR是如何实现迭代和并发:

说一个比较容易理解的层面:迭代就是不停的反复调用同一脚本,反复执行,注意,对1个用户执行10次来说,只会分配一块内存。10个用户执行一次,是调用同一脚本10次,会分配10块内存。LR调用脚本,编译后,运行,按脚本发送数据。

比如:web_url这样的函数,执行就会发HTTP request。

如果你还想知道更细节的进程和函数的实现,只能侧面验证(具体方法看各人的能力和擅长),因为我们都不是LR的开发者。 

    3,太显然的问题了,参数化时选择每次出现唯一,只要参数够用就OK,不够用,就设置相应的规则。 

action在场景运行中iteration只对其起作用,对vuser_init和vuser_end都不起作用,action是一个可以被重复使用的最小单位其实你可以将所有脚本录制到一个action里,只是不方便管理罢了。

举个最简单的例子,像lr自带的例子——订票系统,你如果把所有脚本都录制到一个action里,那回放的时候,每个用户登录就只能买一张票,而如果想一个用户买多张票的话,这样就行不通了。那你就要设多个action,并把登录和结束各录制在一个action里,把买票录到一个action中,这样,将买票的action迭代多次,而用户登录和结束只运行一次,这不就模拟了现实中的情况了吗?



其实LoadRunner 是以客户端的角度来定义“响应时间”的,当客户端请求发出去后, LoadRunner 就开始计算响应时间,一直到它收到服务器端的响应。这个时候问题就产生了:如果此时的服务器端的排队队列已满,服务器资源正处于忙碌的状态,那么该请求会驻留在服务器的线程中,换句话说,这个新产生的请求并不会对服务器端产生真正的负载,但很遗憾的是,该请求的计时器已经启动了,因此我们很容易就可以预见到,这个请求的响应时间会变得很长,甚至可能长到使得该请求由于超时而失败。等到测试结束后,我们查看一下结果,就会发现这样一个很不幸的现象:事务平均响应时间很长,最小响应时间与最大响应时间的差距很大,而这个时候的平均响应时间,其实也就失去了它应有的意义。也就是说,由于客户端发送的请求太快而导致影响了实际的测量结果,设置步长则可以缓解这一情况,这样,应该试试设置pacing,再运行看看情况。

使用Loadrunner进行参数化和迭代运行 版本为LoadRunner12.55 参数化 以下是主要的代码块(作用为添加新用户): /* 保存 */ web_submit_data("save", "Action=http://localhost:8080/user/save", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://localhost:8080/user/saveUI", "Snapshot 阅读详情

相关推荐

LoadRunner中负载时间Duration与迭代次数Iteration的联系

例子: 3个虚拟用户:V1  V2  V3; 迭代次数:迭代1,迭代2; 目标最大并发数:3个; controller设置: (1)每5S加载两个Vuser ; (2)持续运行(Duration):5min; (3)每5S退出两个Vuser; 分析:不到10S,三个Vuer都加载完成,由于登录操作的时间很短,所以3个用户都完成两次迭代时,不到1min;那剩下的时间,Vuser在干嘛

qq_27062299的专栏 3738

【转】关于LoadRunner的迭代

通过用lr做负载压力测试过程发现,如果设定不同的action迭代次数,每次得出的结果是不同的,曲线的表现形式也是不同的。这点就使我们会感觉困惑,为什么要设置action的迭代次数?以及对于不同的应用系统应该怎样设置迭代次数呢? 首先你要理解性能测试是在干什么? 性能测试是模拟系统一段时间内真实的压力情况,以考察系统的性能。 再看怎么模拟系统真实的压力情况?比如...

weixin_30807677的博客 255

软件性能测试与loadrunner实战.rar

LoadRunner? 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上 千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个 企业架构进行测试。通过使用 LoadRunner ,企业能最大限度地缩短测试时间,优化性能和 加速应用系统的发布周期。 目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不 同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担 心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。 Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最 大限度地利用现有的 IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质 量,可靠性和可扩展性都有良好的评价。 LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优 化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为 和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的 协议和技术,为您的特殊环境提供特殊的解决方案。

LoadRunner 脚本优化之——参数化迭代介绍

可以发现:在每个ITerations时,参数化的值都会更新,但是在单个ITerations的多次block循环时,每次取得的参数化的值是一样的,问题来了:如果让每次block块的循环也取得不一样的值呢?由于参数化的策略是每次出现都会重新取值,这样在 find 函数和真正调用的函数中,都会调用不同的值,于是就会出现检查的值和实际运行的值总是取的不同的情况。6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础。

NHB456789的博客 321

LoadRunner中参数化中参数迭代规则详解

loadRunner参数EachOccurrence每次遇到参数就进行更新。多次使用同一参数,而且没有什么关联,例如随机数。EachIteration每次迭代时发生更新。如果参数出现几次,虚拟用户用同一个数值。适用同一个关联的参数。Once所有的地方都用同一个数值,包括所以的迭代。  EachOclearcase/"target="_blank">ccurrence  每次遇到参数就进行更新。  多次使用同一参数,而且没有什么关联,例如随机数。  EachIteration  每次迭代时发生更新。如果参数出现几次,虚拟用户用同一个数值。  适用同一个关联的参数。  Once  所有的地方都用同

GPU运维工程师入门指南 (第九篇): 高性能网络 - InfiniBand与RDMA技术

本文介绍了支撑AI分布式训练的高性能网络技术InfiniBand和RDMA。传统TCP/IP网络因内核开销和内存拷贝成为性能瓶颈,而InfiniBand提供高带宽、低延迟的专用网络,RDMA则通过内核旁路和零拷贝技术实现节点间内存直接访问,显著提升通信效率。特别介绍了GPUDirect RDMA技术,使GPU显存可直接通信。文章还列举了运维人员在部署这些技术时需要考虑的硬件、驱动、配置和监控等关键点。这些技术共同构成了支撑大规模AI集群的"数据高速公路",为后续讨论存储性能瓶颈奠定了基础

weixin_42587823的博客 1096

软件性能测试学习笔记(LoadRunner):从零开始

软件的性能测试与软件的功能测试完全不同,只关注服务器的表现。软件的刺激方式有多种,常用的方式有三种,分别是压力测试、负载测试和稳定性测试。除此之外,还有故障转移与恢复测试等方式。压力测试:一瞬间给软件进行高强度施压,因此压力测试也被称为并发测试。负载测试:持续地给软件增大压力。稳定性测试:将压力保持到一定的较高值后维持来测试软件的忍耐力。稳定性测试往往需要持续几个小时。确定性能测试的类型:确定进行性能测试的方式是哪一种。例如,对接口进行并发属于压力测试;测试网站的客户容量属于负载测试。

hanmo22357的博客 2108

常见图像加密性能评价指标(详解加python实现)

前言 本文目的 介绍一些常见的用于图像加密的评价指标并予以代码实现,方便以后做实验时参考查阅。 图像加密领域所有常见的安全分析技术汇总如下图。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7N8tbKNx-1618308894314)(%E5%B8%B8%E8%A7%81%E5%9B%BE%E5%83%8F%E5%8A%A0%E5%AF%86%E6%80%A7%E8%83%BD%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87/1-s2.0-S0165

z2bns的博客 3万+

loadrunner性能测试流程步骤

4. 执行性能测试:在执行性能测试的过程中,测试人员需要进行实时监控和分析测试结果,以及使用合适的工具和技术进行数据分析和报告撰写,以实现准确的测试结果和解决方案。3. 场景设置:在场景设置阶段,需要根据需求和测试目标,设置虚拟用户数、测试时间、负载模式、网络延迟、硬件监控等参数,以执行合理的测试。总之,LoadRunner性能测试流程是一个体系化、系统化的过程,需要在细节、数据、技术、工具等方面综合考虑和评估,在实际测试操作中掌握相关的技术和工具,以实现准确、稳定性和有效性的测试结果音策划统。

tuery1314的专栏 1522

安卓APP通过CH340实现USB串口通信与设备检测

本文详细介绍了安卓APP通过CH340芯片实现USB串口通信与设备检测的完整流程。从CH340芯片的基础原理到开发环境搭建,再到串口通信的具体实现和错误处理,提供了全面的技术指导。文章还分享了USB热插拔处理、自动重连策略以及性能优化等实战技巧,帮助开发者高效完成安卓与嵌入式设备的通信开发。

weixin_42531925的博客 379

王道考研计算机网络课件全解析:从零搭建你的知识框架(附B站视频+PPT下载)

本文全面解析王道考研计算机网络课程的核心知识体系,从OSI七层模型到TCP/IP四层架构,详细讲解物理层、数据链路层、网络层、传输层和应用层的关键技术。提供高效学习路径、实战案例和常见误区警示,帮助考生系统构建计算机网络知识框架,适合计算机考研备考者参考学习。

leaf8的博客 561

LoadRunner迭代取值理解练习

LR使用过程中,设置场景以及迭代方式必须选择。设置了迭代方式之后,脚本怎么运行,会出什么结果?

AZ_Canon的博客 529

SVM-支持向量机学习(1):线性可分SVM的基本型

1. foreword先看的是李航老师的书第7章,比较传统按照以下三节展开: 线性可分SVM 线性SVM 非线性SVM SMO算法 李航老师讲东西向来不拖泥带水,但本节也几乎用了40页的篇幅,足见涉及内容之多。7月底硬着头皮啃了下来,边看边在笔记上摘抄标注,花了2天时间对SVM有了基本认识。一个月过去了,如今重新整理为博客,再看轻松许多,并不断对比西瓜书的内容,启望达到融会贯通。西瓜书此节明显节奏轻

鸟恋旧林的博客 8680

LoadRunner添加迭代和迭代的间隔时间

LoadRunner添加迭代次数和迭代的间隔时间

qq_45481993的博客 1740

手把手教你用CODESYS将旧笔记本改造成软PLC(含证书配置避坑指南)

本文提供了一份详尽的指南,教你如何利用CODESYS平台将闲置旧笔记本改造为一台功能完整的软PLC。内容涵盖从硬件评估、系统实时性优化、软件安装与驱动配置,到关键的证书授权管理避坑指南,旨在帮助自动化工程师和爱好者低成本搭建稳定可靠的学习与开发平台。

weixin_29190573的博客 279

文件上传漏洞攻击与防范方法

文件上传漏洞攻击与防范方法 文件上传漏洞简介: 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 文件上传漏洞危害: 上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传...

m0_38103658的博客 4万+

loadrunner中的迭代

1,迭代和并发,是完全不同的概念。没有什么关系。 比如,一个用户迭代十次,还是一个用户的压力。 10个用户执行一次,就是10个用户的压力。10个用户迭代10次,还是10个用户的压力。但他们都和参数化的数据有关系(也要看参数化是如何设置的,以及系统如何判断提交值的)。 2,你要是想知道,LR是如何实现迭代和并发: 说一个比较容易理解的层面:迭代就是不停的反复调用同一脚本,反复执行,注意,对1个用户执...

ths512的博客 1156

Openai gym environment for multi-agent games

用于多智能体游戏的 OpenAI Gym 环境

suiusoar 1193

LoadRunner参数化设置及迭代配置说明

以下内容对loadrunner进行一个初识,让以后运用更加熟练,我们这里用的是loadrunner自带的WebTours平台,他是不含数据库的。 loadrunner的录制方式有两种,如下图所示,1:基于HTML方式(只针对鼠标和键盘事件,录制的文本比较纯净,不需要做过多筛选。)2:基于URL方式(会录制全部内容,包括页面有广告内容之类的)。两种方式需要根据实际工作需求进行选择: ...

gaofengyan的博客 6036

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LoadRunner编程之跳出迭代

LoadRunner编程之跳出迭代   51Testing软件测试网3p6pK.Yo LoadRunner中 提供了函数exit(-1)来结束迭代。 使用return 0 来结束本次迭代,进入下一次迭代。 P2E[&V o1M$N0 H'X3EL,o7K4]C/L0例子如下:51Testing软件测试网_Ts r5oT y/Z6C/yx.@0    在运行时设置中,设...

weixin_34129145的博客 119

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

loadrunner参数化不同迭代配置

loadrunner脚本进行参数化过程,脚本运行的每一遍,参数化的取值都不一样,针对于不同的配置来看取值方式的变化。 首先可以看到选择Selectnext row(选择下一行),有三个选项分别是: 顺序(Sequential):按照参数化的数据顺序,一个一个的来取。 随机(Random):参数化中的数据,每次随机的从中抽取数据。 唯一(Unique):为每个虚拟用户分配一条唯一的数据。 还有Update value on(更新时的值): 每次迭代(Each iter...

weixin_42561872的博客 712

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

loadrunner迭代问题

 ?使用loadrunner controller运行script,script中设置迭代数为1,但是action还是运行了好几次=在controller中设置运行时间,迭代数将失效,aciton在运行完之后会根据设置时间(默认为不等待)重新运行action中的代码。解决方法不设置运行时间,action结束后立即关掉, 或者设置较长的等待时间。

tcpig的专栏 783
上一篇: loadrunner回放过程中出现问题(Error -27979)
下一篇: LR 中手工关联web_reg_save_param 函数用法
BRPROUD
博客等级 码龄14年 26粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值