LoadRunner设置检查点的几种方法介绍
LoadRunner教程

LoadRunner使用手册测试中心刘艳会1 LoadRunner概要介绍LoadRunner® 是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。
通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。
难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。
这些都不可避免地导致公司收益的损失。
Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。
此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
1.1 轻松创建虚拟用户使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。
该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。
它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。
利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。
所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。
另外,LoadRunner 的TurboLoad 专利技术能提供很高的适应性。
LoadRunner使用说明书

Load Runner 使用说明一、组件:(一) VuGen:用于捕获最终用户业务流程和创建怎动化性能测试脚本。
1. 录制脚本:(1) 集合点Rendezvous(2) 验证点Check Point:文本验证点Text Check、图片验证点Image Check(3) 事务Transaction:事务开始Start Transaction、事务结束End Transaction(4) 注释与消息Comment & Message:/***/2. 增强并编辑Vuser脚本(1) 参数化:在Select next now中的参数:Sequential顺序、Random随机、Unique唯一在Update value on 参数:Each iteration每次迭代、Each occurrence每次出现、Once 一次(2) 从数据库中导入数据3. 配置动行时设置Runtime settings(运行时设置)(1) Number of Iterations:迭代次数(2) 在Preferences中的Enable image and text check在脚本中添加验证点时必须选中。
4. 在独立模式下运行Vuser脚本5. 集成Vuser脚本(二) Controller:用于组织、驱动、管理和监控负载测试。
1. 创建方案(1) 创建手动方案(2) 创建百分比模式方案(3) 创建面向目标的方案2. 计划方案(1) 开始时间(2) 方案运行设置:加压Ramp Up、持续时间Duration、减压Ramp Dowm3. 运行方案4. 监视方案(1) RuntimeGraphs(运行时图)A. Running Vusers运行时图:Running正在运行的Vuser总数、Ready完成脚本初始化部分、即可以运行的Vuser数、Finished结束运行的Vuser数,包括通过的和失败的、Error执行时发生的错误VuserB. Transaction Graphs事务监视图:Trans Response Time事务响应时间、Trans/Sec(Passed)每秒事务数(通过)、Trans/Sec(Failed/Stopped)每秒事务数(失败、停止)、Total Trans/Sec(Passed)每秒事务总数(通过)。
Loadrunner疑惑点,参数化,关联如何定位等

Loadrunner疑惑点,参数化,关联如何定位等⼀、脚本的录制⽅⾯1.LR中脚本浏览可以使⽤两种模式:Tree图形化模式和Script脚本模式2.LR中还提供了Tasks的标签,这⾥提供了VUG建议的脚本录制开发过程,通过⼀个任务流的⽅式知道你。
3.录制选项,对于web使⽤的录制⽅式,HTML提供了两个⼤类的录制⽅式:HTML-BASED SCRIPT 和URL-BASED SCRIPT。
第⼀种:Html-based script 这种⽅式录制出来的脚本是基于html基础的,其下有两种不同类型的脚本:1. A script describing user actions基于解释⽤户⾏为的脚本,录制的脚本中包含web_link,web_submit_form函数,主要是描述⽤户做了什么操作。
(1)思考:若⼀个页⾯中有多个同名的链接,怎么办?答:ORD这个关键字可以帮助你。
=2就是点击的第⼆个。
(2)使⽤html-base Script下的A script describing user actions的好处是脚本简洁,基于⽤户操作模拟,浅显易懂,且⾃⾝包含对象检查过程,⽆需校验。
缺点是基于⽤户⾏为的模拟,在参数化和链接多个同名时难以应⽤。
(3)A script containing explicit URLs only 基于url请求的脚本录制类型。
Web_ulr()、web_submit_data()第⼆种:url-based script 这种是基于URL请求的脚本录制⽅式,会录制所有的http请求。
(1)思考:什么时候我们该⽤html-based script还是选择url-based script呢?答:⼀般来说如果我们的标准是使⽤IE访问的B/S架构,我们应该使⽤html-based下的a script containing explicit urls only这种⽅式来录制脚本,这种脚本基于url请求完成,不会带有任何前后依赖的内容。
_LoadRunner中的七个常用函数

7Dian组织交流会之_LoadRunner中的七个常用函数王小冉Check Functions(检查函数):1. 1.1 int web_reg_find (const char *attribute_list, LAST)Description:1). web_reg_find属于注册函数,注册一个在web页面中搜索文本字符串的请求,在接下来Action (象web_url)类函数中执行搜索。
2)、通过查找期望的字符是否存在来验证是否返回了期望的页面。
例如,通过查找“Welcome”来检查主页是否完全打开了。
也可以查找“Error”检查浏览器是否发生错误。
还可以使用此函数注册一个请求来统计特定字符串出现的次数。
如果检查失败,在接下来的Action类的函数中会报告错误。
此函数仅仅注册请求,并不执行。
函数的返回值只表明注册是否成功,并不表示检查的结果。
3)、此函数不仅能够查找text,还能查找到围绕着text的strings。
不要同时指定text和前缀后缀。
4)、此函数在HTML-based和URL-based的脚本中都可以使用。
此函数是在所请求内容到达之前注册搜索请求的,所以当所请求内容一到达后就会执行搜索,产生的脚本比较高效。
Attributes:> Text or TextPfx and TextSfx 其中之一是必须写的。
要忽略大小写,请在边界后面添加“/IC”;(下面几项都是可选的)> Search:查找的范围可以是Headers、Body、Noresource或ALL,默认是BODY;> SaveCount:找到匹配的个数;> Fail:检查失败的条件的操作方法(即设置检查失败的发生条件),其值为Found或NotFound;>ID:用于在log中标识检查点的,与函数同行,便于在日志文件中查看到检查点函数;Note:1< 当在此函数中,查找的Text=“中文”时,LR如果报错,可以尝试清除此选项:Recording Options--Advanced--support charset中的UTF-8。
自己整理的LoadRunner常见问题以及解决办法

1.LoadRunner录制脚本时为什么不弹出IE浏览器?当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。
启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。
因此建议运行LoadRunner得主机上保持一个干净的测试环境。
2.录制Web脚本时,生成的脚本中存在乱码该如何解决?录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。
再次录制,就不会出现中文乱码问题了。
3.HTML-based script与URL-based script的脚本有什么区别?使用“HTML-based scr ipt”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。
4.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。
要想开启检查功能,必须修改运行时的配置Run-time Setting。
loadrunner之VUGEN简介

一、常见的网络协议还有一些常见的中间件,也被视为协议,如oracle、sqlserver、Tuxedo等选择协议的定律:1.以客户端与其直接连接的server通信方式为准。
比方web mail系统虽然实现mail功能,但客户端直接连接的是web server不是mail server,所以选择协议。
比方一个网络应用没有找到适宜的协议,那么就降低一个层次,用winsock来录制,肯定没问题。
但协议级别低,很难理解。
尽量用高层次协议。
协议可以根据应用领域分为以下几种:录制时有两种协议选择方式:1.单协议模式:VU只录制该协议的用户操作,适用于任何一种协议。
2.多协议模式:VU录制几个协议上的操作,支持以下协议:COM、FTP、Oracle NCA、POP3、Real Player、Windows Socket、SMTP、Web。
有些协议支持多action:Oracle NCA、Web、RTE、general C、WAP、I-Mode、voice XML。
二、VU常识1.HTML mode 与URL modeHTML mode是默认选择的,说明脚本采用HTML页面的形式来表示,这种脚本容易维护。
URL mode说明脚本采用URL的方式,所有的请求都会被录制下来,单独生成函数。
选择哪个录制,参考原那么:1).基于浏览器的推荐使用HTML,不是基于浏览器的使用URL2)如果基于浏览器的应用程序包含了JavaScript并且向效劳器产生了请求,也要使用URL3)基于浏览器的应用程序使用了 S平安协议,使用URL。
2.日志主要有3个有用的日志:1)执行日志〔execution log〕脚本运行时的输出日志,方便查看脚本运行时是否报错:黑色:标准输出消息红色:标准错误消息绿色:用引号括起来的文字字符串蓝色:事务状态信息双击以操作名开场的行,光标直接定位在对应的脚本上2)录制日志〔recording log〕包含了浏览器与效劳器之间的所有信息:通信内容、日期、时间、浏览器的请求、效劳器的响应内容等。
事务、检查点、集合点

1、集合点:插入集合点是为了衡量在加重负载的情况下的性能情况。
在计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到计划中的需求。
2、事务(Transaction):为了衡量的性能,我们需要定义事务。
比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。
这个事务的运行时间在结果中会有反映。
插入事务操作可以在录制过程中进行,也可以在录制结束后进行。
LoadRunner 运行在脚本中插入不限数量的事务。
问题:事务的start_transaction与end_transaction是否可以嵌套?3、参数化输入如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。
这些操作都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。
为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
[信息来自"岁月联盟"]4、参数化包含以下两项任务:资源来自"岁月联盟"①在脚本中用参数取代常量值。
信息来自"岁月联盟"②设置参数的属性以及数据源。
(注:不是所有的函数都可以参数化的。
)5\参数的类型。
["岁月联盟"]DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime 类型来替代。
使用LoadRunner进行性能自动化测试的方法和技巧

使用LoadRunner进行性能自动化测试的方法和技巧LoadRunner是一款常用的性能测试工具,它可以模拟多种负载条件下的应用程序行为,帮助开发人员检测和解决性能问题。
本文将介绍使用LoadRunner进行性能自动化测试的方法和技巧,帮助读者更好地利用LoadRunner提升应用程序的性能。
一、LoadRunner简介LoadRunner是由Micro Focus公司开发的一款性能测试工具,它可以模拟多种负载条件下的应用程序行为,帮助开发人员评估应用程序的性能与稳定性。
LoadRunner提供了丰富的功能和工具,包括脚本录制、负载生成、性能监控和报告分析等,可用于测试各类应用程序,如Web应用、移动应用和企业应用等。
二、性能自动化测试的基本步骤1. 确定测试目标和需求:在进行性能自动化测试之前,需要明确测试目标和需求,例如确定负载要求、并发用户数、响应时间等指标,以便后续的测试设计和执行。
2. 脚本录制与回放:LoadRunner提供了脚本录制功能,可以通过录制用户在应用程序上的操作来生成测试脚本。
在录制完成后,可以使用脚本回放功能对录制的操作进行模拟,以验证应用程序在负载条件下的性能表现。
3. 参数化和数据驱动:在进行性能测试时,往往需要模拟多个用户的行为。
为了实现这一目标,可以通过参数化和数据驱动的方式来设置不同用户之间的差异。
LoadRunner提供了参数化工具和数据驱动功能,可以轻松地设置和管理测试数据。
4. 脚本调优和编辑:在录制和回放过程中,可能会出现一些不必要或重复的操作,这会影响测试的准确性和效率。
通过对脚本的调优和编辑,可以剔除不必要的操作,减少脚本的体积和执行时间。
5. 负载生成和分析:LoadRunner提供了多种负载测试模式,可以模拟不同负载条件下的应用程序性能。
通过调整负载模式和负载参数,可以对应用程序进行不同负载场景的测试。
测试完成后,可以使用LoadRunner提供的分析工具对测试结果进行统计和分析,以便找出性能问题和瓶颈。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LoadRunner设置检查点的几种方法介绍
前段时间在群里跟大家讨论一个关于性能测试的问题,谈到如何评估测试结果,有一个朋友谈到规范问题,让我颇有感触,他说他们公司每次执行压力测试的时候,都要求脚本中必须有检查点存在,不然测试结果将不被认可,这是他们公司的规范。
其实,在做压力测试过程,我们很容易忽略很多东西,而且随着自身的技术演变,我们很容易去丢失掉一些很好的习惯,当我们再碰到这些问题的时候,我们才发现其实是我们太粗心大意了,所以说好的习惯要保持。
这次我刚好也要接手一些性能工作,因此就如何规范设置检查点来谈谈一些基本的流程和方法。
使用LoadRunner做压力测试,大致如下几个流程:
1、明确测试目标
2、录制测试脚本
3、脚本优化、调试
4、场景运行
5、分析测试结果
当然这里都是概况性的标题,但从这里我们可以明确的是测试脚本是整个压力测试过程中的重点步骤,如果测试脚本都不能确保正确与否,后面的测试过程就无从说起了。
很多时候我们把脚本调试就简单的认为是脚本回放没有错误就认为脚本是没有问题的,这当然不能这么肯定,脚本调试是一个非常严谨的过程,我大致归纳如下几步:
1、明确每一行脚本的作用,也就是说每一行脚本执行的功能是什么;
2、删减不需要的脚本语句,比如在录制过程由于LR默认设置导致录制之后出现很多冗余的脚本,这些个脚本对我们的测试过程没有用途的应该删除掉,至于哪些是冗余就要具体分析了,所以说脚本录制完之后要分析脚本运行的过程,方能理解脚本执行的用途,不然在后面施压时运行错误,就会开始到处找问题,而又找不出问题;
3、查找存在的关联并进行相关设置
4、设置检查点,设置检查点的目的就是为了验证页面每次运行之后是否正确,设置检查点的过程总要通过不能的回放来进行验证检查点设置是否正确。
5、通过测试目标明确脚本执行的目标事务,并添加事务;
6、对需要进行并打操作的功能设置集合点
7、根据实际情况设置ThinkTime
8、在以上所有脚本调试步骤完成之后,设置迭代次数,通过在V user中设置多次迭代来验证脚本在多次循环运行时是否存在错误
注意:在V user中运行和回放脚本的过程,要密切关注replay log,也就是回放日志,很多问题通常都暴露在回放日志中,只不过我们没有认真去检查,所以没发觉。
因为大多数情况是我们在回放脚本之后只观察回放日志中有没有红色的错误提示信息,如果没有我们就认为我们的脚本是ok的,其实不然,很多时候一些隐藏的错误就在回放日志中可以被
发现,比如回放日志中的Warning信息,也就是警告信息,这些信息一旦你不去理会它,它将在场景运行过程中开始频繁暴露出来,而在场景中报错之后我们就认为可能是系统有问题或者是测试过程存在其他问题等等,而很难去考虑到是脚本的问题,是脚本在Vuser 中调试就存在的问题。
还有的时候一些问题在一次脚本回放中就不能被发现,他需要通过V user中设置多次迭代才能在回放日志暴露出问题来,所以说我们通常的思维就是一旦测试脚本没有一次回放没有出现错误,就去场景中运行,结果在场景中哪怕是运行10个用户都还会报错,这就是问题的根源所在。
下面还是重点说说检查点吧,三种常用的文本检查web_reg_find的方法:
1、将脚本切换到树结构,在page view页面上找到你要check的文本内容,并执行鼠标右键,选择Add a text check.
2、通过V uesr界面去设置检查点,如图所示:
3、将脚本切换回代码界面,在光标闪烁的上行,添加如下的代码:
添加的代码根据你检查的方式不同而不同,你可以选择其中之一即可。
代码一:
web_reg_find("Text=Payment Details",LAST);
注:“Payment Details”为你要检查的文本;
脚本执行到此处,若在页面上找到了这几个字符串,那脚本继续执行下去;若没有找到,脚本将在此报错并且结束。
代码二:
web_reg_find("Text=Payment Details", "SaveCount=para_count", LAST); //check 的函数这里是要运行的页面脚本
if (atoi(lr_eval_string("{para_count}"))>0) //验证是否找到了页面上的要检查的字符串lr_output_message("Pass!");
else
lr_output_message("Failed!");
注意:
“Payment Details”为你要检查的文本;
脚本执行到此处,不管页面上是否存在你要检查的字符串,脚本都不会报错,而是执行下去。
此段代码将找到的你要检查的字符串的个数,存为一个参数。
然后在页面代码的后面,通过检查这个参数的值是否大于0,来判断是否找到了你所要检查的字符串。
注意:这里的测试结果均以200状态码返回,其失败的结果将在分析报告中进行分类标识。
代码三:
web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST);或者
web_reg_find("Text=Payment Detdils", "Fail=Found",LAST);
以上两段脚本就比较简洁,通过查询文本内容来决定此次运行的测试结果是否失败。
注意:在使用检查点的时候我们还需要注意一些问题,通常我们都要设置一些中文检查点,但是LR默认不支持,如果你设置了中文检查点而报错,那你就应该注意了,在录制脚本的时候去掉默认设置的UTF-8选择,如下图所示:
并且还设置启用图片和文本检查点,如下图所示:
以上就是设置检查点的全过程,设置检查点的目的不只是为了验证我们的脚本没有错误,而更重要的是一个规范问题,如何使得测试结果更具有说服力,那就所有的测试脚本中都
添加检查点设置。