LoadRunner11-设置集合点及检查点
- 格式:docx
- 大小:565.40 KB
- 文档页数:20
l o a d r u n n e r11安装使用loadrunner 11一、安装4G只要顺序安装即可;二、破解1. 把loadrunner相关程序全部退出;2. 用LR8.0中的mlr5lprg.dll、lm70.dll覆盖LR9.5安装目录下“bin”文件夹中的对应文件;一般是C:\Program Files\Mercury\LoadRunner\bin.3. 清理注册表(不清理的话,在添加licence时,会提示“License security violation……”)可以下载注册表清理器lr_Del_license(LR破解包内有)或者手动修改注册表,删除下面注册表中的所有子键:(最好还是通过上面的注册清理器清除比较可靠)[HKEY_LOCAL_MACHINE\SOFTWARE\MercuryInteractive\LoadRunner\License2][HKEY_LOCAL_MACHINE\SOFTWARE\MercuryInteractive\LoadRunner\License2\History]"AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"=""[HKEY_LOCAL_MACHINE\SOFTWARE\MercuryInteractive\LoadRunner\License2\PermanentLicense]@="AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN""last"="AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"[HKEY_LOCAL_MACHINE\SOFTWARE\MercuryInteractive\LoadRunner\License2\TemporaryLicense]@="AEBGEBFS-AKEKEKEKE-KAUCA"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{87B3ADD4-21EB-11d5-93EF-00105AA0FD2D}]@="IControl"4. 添加下面的licence,即可使用:global-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGIweb-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB golba-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR提供一个超级license 最高支持6.5w个并发:AEACFSJI-YJKJKJJKEJIJD-BCLBR三、录制脚本创建事务完善脚本部署负载控制器执行负载测试分析测试结果生成组合图生成测试结果文档1、如何录制2、如何创建事务3、如何在已有脚本基础上完善不同用户数据的加载(即脚本参数化,应该也可以本地参数化)4、如何部署负载控制器-多客户机执行同一个负载,并发个数、执行时间、vuser加载时长等问题5、执行测试发生各种错误,如何配置检测服务器6、测试结果各种数据的含义7、合并具有数据意义的图8、生成可用的数据文档四、疑问及解决方案1、如何监控linux服务器资源:Rpcinfo –p : 该工具检测服务器是否开启了rpc相关服务开启rpc的话如图:没有开启rpc相关服务解决:安装rpc.rstatd服务tar -xzvf rpc.rstatd-4.0.1.tar.gz在编译安装目录启动服务:./rpc.rstatd启动portmap服务:/etc/rc.d/init.d/portmap start有些服务器可能是出现这样的问题:如果是rpcinfo command not found的话:先安装portmap : yum install portmap然后启动这个服务:/etc/init.d/rpcbind start如果还出现建立rpc没有成功的话,可以尝试将服务器的防火墙永久关闭:chkconfig iptables offchkconfig iptables on(注意,portmapper和rstatd都需要端口对外开放)2、关于并发用户和集合点的探讨主要资料来自51testing各种大牛回帖集合点:严格意义上讲集合点是为了并发,比如某个提交数据的事务前插入集合点,当vuser运行到集合点时,lr会检查有多少用户到达集合点,如果达到集合点指定并发的要求则lr会命令到达集合点的vuser同时去提交数据;事务:为了衡量一系列操作的性能,需要定义事务,在测试结束后,lr会给定相应事务的性能数据;并发:个人也一直比较迷糊,认为并发可以分为严格上的并发和广泛并发,严格并发:所有的vuser在同一时刻做相同或不同的操作广泛并发:所有的vuser在同一段时间内自由的操作不同的动作(只要有技术人员说上w的并发,都觉得这些人说话不严谨也不负责任,经常会误导小白们,导致每个刚入门性能测试的人觉得不来个上千上万的并发都不好意思拿出测试结果)具体集合点和并发在lr里怎么操作,这里先不赘述,之后会有专门的节介绍;这里主要是要说什么情况下更适合使用集合点:借用一张应用结构图:对于打个操作lr本省执行的时候就已经在模拟一个并发的过程,而插入集合点只是为了实现严格意义上的并发,而如果在一个事务中有多个操作,如有查询,删除等操作行为,则最好分成多个事务,每个事务有自己的集合点(并发点),这样才能准确的获得各个操作的并发数据;一般更多的是单独并发测试一个操作行为,所以可要可不要集合点?但有个duration,这期间这些vuser和集合点又是怎么个关系?一下两段为草稿,待完善:单个操作,设置集合点和不设置集合点的区别是否明显,还是差不多多个操作,如果是多个操作,就必须每个操作作为一个事务,在事务设置集合点,这样才会避免vuser自由的访问任意个操作,而是可以让lr指定在哪个操作并发;可以让action迭代,相当于用户多次操作;是不是在一段duration中,慢慢加载vuser,duration保持一段时间(最大用户数),以更慢的速度让vuser慢慢退出,这比较符合一天vuser从低谷到某个高峰再到低谷的,而每个用户在这期间可以做一系列的操作(事务);五、简单实例录制请求一个url:http://192.168.2.211:5100/game/whitelist?lasttime=0控制器场景:同时初始化所有vuser,每5秒增加2个vuser,所有vuser加载结束后持续1分钟,持续期结束后,每5秒停止2个vuser:执行场景结束后台共接收到4593个请求:从第一个vuser加载并请求开始到最后一个vuser请求结束:(2013-03-14 14:12:15 - 2013-03-14 14:13:55)结果分析:Analysi Summary:Running Vusers – Average Transaction Response Time:UNIX Resources – Running Vusers:六、各种不同场景设置并发的结果分析1、场景1 maxmium running vuser立刻初始化10个vuser,立即启动10个vuser,Run until completion共收到10个请求本次测试中最大同时online vuser为3个,平均每秒3.333点击数,也就是共执行了3秒左右的测试时间2、场景2 start vuser rule立即初始化vuser,每隔1s启动一个vuser,run until completion实际收到10个请求并完成请求,这里说个问题:一个vuser请求结束后就不再参与下一次请求测试本次测试最大同时online vuser数位0,应该是请求量太少10个,测试时间又长10s,导致这个数据,平均每秒点击0.909本次测试的目的:1)、start vuser中simultaneously同时地与有规律渐进启动vuser的区别,后者在vuser启动后即可进入请求(hits点击动作),也就多出一定的duration时间2)、对比场景1我们可以了解stop-simultaneously规则意味着vuser在duration 一结束就停止hits3、场景3 duration and stop rule立即初始化10vuser,立即启动10vuser,run for 30s,stop all vuser simultaneously,这里主要测试duration和stop的起什么效果在30s内,应该是(10+30)s内完成1770次请求,每个vuser在完成一个请求后可以继续发出相同的请求直到duration30s时间结束,并根据stop规则停止请求我们也注意到summary上面分析的duration真正时间是40seconds,本次测试最大同时online vuser为 10,总请求数为1770,平均每秒43.171请求数本次测试的目的:1):duration参数允许vuser直请求直到被stop规则停止2):maximum running vusers并非最大并发vuser,而仅仅是当次测试中最大同时在线的vuser数(在线意味着user一直连接着,并一直请求vuser script中action指定的操作行为)4、场景4被我删除了5、场景5 initialize vuser before run6、场景6 initialize simultaneously7、场景 7 initialize N vusers per X seconds (N ,X 常数)5、6、7场景说明initialize vuser的方案中initialize simultaneously和initialize vuser before run规则基本是瞬间完成vuser的初始化(不论是all vuser init=>start rule=>run或是foreach(one vuser=>init)=>start rule=>run),而采用规则2初始化vuser则会花费一定的时间在初始化用户(模拟登录输入操作花费的时间吗?),其导致的主要后果就是hits per second就会降低,因为测试时间变长了;一般测试并发的场景需要设置集合点,而且需要一次性初始化vuser否则lr默认50个vuser缓慢初始化8、场景8 stop ruleInitialize all vuser simultaneously,start 10 vusers per 1s,duration 10s,stop 10vusers per 1s实际请求1400我们也看到duration时长为30s,也就是包含start和stop vusers的时长,毕竟不是瞬间所有vuser run or stop;本次测试目的:stop 规则不建议stop simultaneously ,实际用户不可能在同一时刻退出连接或请求9、场景9。
Loadrunner11简单压测接⼝教程⼀、需求使⽤Loadrunner压测⽬标接⼝,要求⽀持1000并发数。
⽬标接⼝:返回结果:结果返回中code的值为1则为保存成功,为4001则为参数异常,为0时则是保存异常。
执⾏设备:Win10(教育版),Loadrunner11破解中⽂版⼆、概述使⽤Loadrunner进⾏压⼒测试⼀般分为3步,第⼀是创建/编辑脚本,第⼆是运⾏负载测试,第三是分析测试结果。
三、创建/编辑脚本点击“创建/编辑脚本”,打开HP Virtual User Generator窗⼝。
点击“新建脚本”或者打开已有的脚本选择协议类型,这⾥选择Web(HTTP/HTML)类型,新建⼀个脚本。
点击“创建”后,会出现录制的对话框。
因我们是提交请求给接⼝,再接受返回值即可。
因此⽆需录制,我们⼿动添加脚本即可。
接下来我们在Action⾥⾯添加脚本,内容为:Action(){web_reg_save_param("return_code","LB=\"code\":","RB=,",LAST);lr_start_transaction("发送请求事务");web_submit_data("web_submit_data","Action=https:///digitaldata/api/signer/1.0/signerRegist","Method=POST","TargetFrame=","Referer=","RecContentType=application/json",ITEMDATA,"Name=signerName", "Value=xx", ENDITEM,"Name=signerType", "Value=个⼈", ENDITEM,"Name=country", "Value=cn", ENDITEM,"Name=organization", "Value=xxx", ENDITEM,"Name=organizationUnit", "Value=xxx", ENDITEM,"Name=signerIDType", "Value=⾝份证", ENDITEM,"Name=signerIDNo", "Value=xxx", ENDITEM,LAST);lr_end_transaction("发送请求事务", LR_AUTO);if (atoi(lr_eval_string("{return_code}"))==1){lr_output_message("操作成功");}else{lr_output_message(lr_eval_string("{return_code}"));}return0;}脚本的简单解释:web_reg_save_param:主要是获取返回值中某些符合规则的值。
第一章Loadrunner11简介随着软件开发技术不断发展和日益成熟,现代应用程序也越来越复杂。
应用程序可以利用数十个甚至数百个组件完成以前用纸或人工完成的工作。
在业务处理过程中,应用程序复杂度与潜在故障点数目之间有直接的关联。
这使得找出问题根本原因变得越来越困难。
软件惊人的变化速度和激增的复杂性为软件开发过程带来了巨大的风险。
严格的性能测试是量化和减少这种风险最常见的策略。
使用HP LoadRunner 进行自动化负载测试是应用程序部署过程中一个非常重要的环。
自动化性能测试是利用产品、人员和流程来降低应用程序、升级程序或补丁程序部署风险的一种手段。
自动化性能测试的核心是向预部署系统施加工作负载,同时评估系统性能和最终用户体验。
一次组织合理的性能测试可以让用户清楚以下几点:➢应用程序对目标用户的响应是否足够迅速?➢应用程序是否能够游刃有余地处理预期用户负载?➢应用程序是否能够处理业务所需的事务数?➢在预期和非预期用户负载下应用程序是否稳定?➢是否能够确保用户在使用此应用程序时感到满意?通过回答这些问题,自动化性能测试可以量化业务状况的更改所带来的影响。
这反过来也可以让用户清楚部署此应用程序的风险。
有效的自动化性能测试可帮助您做出更加明智的发行决定,防止发行的应用程序带来系统停机和可用性问题。
LoadRunner 包含哪些组件LoadRunner 包含以下组件:➢Virtual User Generator 录制最终用户业务流程并创建自动化性能测试脚本,即Vuser 脚本。
➢Controller 组织、驱动、管理并监控负载测试。
➢Load Generator 通过运行Vuser 产生负载。
➢Analysis 用于查看、剖析和比较性能结果。
➢Launcher 使您可以从单个访问点访问所有LoadRunner 组件。
LoadRunner 术语场景场景文件根据性能要求定义每次测试期间发生的事件。
Vuse 在场景中,LoadRunner 用虚拟用户(Vuser)代替真实用户。
1.1创建负载测试Controller 是中央控制台,用来创建、管理和监控您的测试。
您可以使用 Controller 来运行模拟实际用户操作的示例脚本,并通过让一定数量的 Vuser 同时执行这些操作,在系统上产生负载。
1.打开HP Loadrunner11窗口选择开始>程序>HP Loadrunner11>Loadrunner11,这时将打开Loadrunner11.00的窗口,如下图所示:2.打开Controller在Loadrunner11Launcher窗格中单击Run Load Tests(运行负载测试),默认情况下,Loadrunner11 Controller打开时将显示‘新建场景’对话框。
单击取消。
Scenarios---场景3.打开示例测试在Controller菜单中打开,选择文件---打开,然后打开Loadrunner安装位置\tutorial 目录中的demo_scenario.lrs。
将打开 LoadRunner Controller 的“设计”选项卡,demo_script 测试将出现在“场景组”窗格中。
您可以看到已经分配了 10 个 Vuser 来运行此测试。
图2.2.1备注:如果没有将教程安装在默认 LoadRunner 安装目录下,脚本路径会出错(脚本路径将显示为红色)。
要输入正确的路径,请选择脚本并单击向下箭头。
单击浏览按钮并转至<LoadRunner 安装位置>\tutorial 目录中的demo_script,然后单击确定。
2.2运行负载测试在图2.2.1中,运行选项卡中,点击开始场景按钮,将出现Controller运行视图,Controller开始运行场景。
在场景组窗格中,可以看到Vuser逐渐开始运行并在系统中生成负载,您可以通过联机图像看到服务器对Vuser操作的响应情况。
图2.2.22.3监控负载测试在应用程序中生成负载时,您希望实时了解应用程序的性能以及潜在的瓶颈,使用LoadRunner 的一套集成监控器可以评测负载测试期间系统每一层的性能以及服务器和组件的性能。
HP LoadRunner Windows 版软件版本:11.00教程文档发布日期:2010 年 10 月软件发布日期:2010 年 10 月法律声明担保随 HP 产品及服务提供的明示性担保声明中列出了适用于此 HP 产品及服务的专用担保条款。
本文中的任何内容均不构成额外的担保条款。
HP 对本文中的技术或编辑错误以及疏漏不负任何责任。
本文中的信息如有更改,恕不另行通知。
受限权利机密计算机软件。
必须有 HP 授予的有效许可证,方可拥有、使用或复制本软件。
根据 FAR 12.211 和 12.212 中有关“商业计算机软件”、“计算机软件文档”和“商业物品技术数据”条款的规定,授权给美国政府使用,使用需遵守供应商的标准商业许可证规定。
版权声明© Copyright 1993 - 2010 Hewlett-Packard Development Company, L.P.商标声明Microsoft® 和 Windows® 是 Microsoft Corporation 在美国的注册商标。
2文档更新本文档的标题页包含以下标识信息:•软件版本号,表示软件的版本。
•文档发布日期,每次更新文档时更改。
•软件发布日期,表示此版软件的发布日期。
要查找最近的更新或验证使用的文档是否为最新版本,请访问:/selfsolve/manuals此网站要求您注册获取 HP Passport 并登录。
要注册获取 HP Passport ID,请访问:/passport-registration.html或单击 HP Passport 登录页面上的 New users - please register(新用户-请注册)链接。
如果您订阅相应的产品支持服务,还会收到更新版本或新版本。
请与 HP 销售代表联系了解详情。
3支持请访问 HP Software 支持网站:/go/hpsoftwaresupport此网站包含联系信息以及 HP Software 所提供的产品、服务和支持的详细信息。
第一课软件性能测试的基本概念引言:亲爱的同学们,欢迎你们来到性能测试教堂,这里将是带领你进入性能测试领域的一个开端。
也许你是满怀欣喜和希望,但我想告诉你,这里也许不如你想想的那么美好,也不会有你想想的那么迷茫,只要你有这个执着的心,能够静心凝神的去关注,去思考,去进取,你的梦想,将不在是梦想,一切皆有可能。
也许有哪一天,你也可以在开发面前自豪的说,我们并不是你们所指的就会在页面上指指点点的,没有一点技术含量的小无知了。
说了这么多了,就不废话了,让我们赶快行动吧!开始我们的第一个章节,了解性能名词解析,为你的今后打下坚实的基础。
1.什么是软件性能?答:性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间来进行度量。
2.什么是软件呈现时间和软件响应时间?答:用户直接感受到时间就是呈现时间,系统作出处理反应的时间就是响应时间。
3.软件测试人员测试性能时的关注点有哪些?答:首先考虑系统在额定用户访问的情况下状态如何?服务器的cpu使用情况是不是已经达到了最大值?是否还有可用的内存?应用服务器的状态如何?我们设置的jvm(交互式应用)可用内存是否足够?数据库的状态如何?是否需要一些调整?4.什么是并发用户,什么是集合点?答:并发用户是指一次性提交的用户数量(举一个墙面可以承受多少个皮球击打的例子)。
集合点是一个并发访问的点,设置集合点可以在客户运行到提交数据集合点时,loadrunner就会检查同时有多少用户运行到了集合点,如果不到规定的数目,就会让到了集合点的用户等待,如果都到了,可以让规定数目的用户同时提交数据,起到并发访问的目的。
5.下面说一个并发访问用户峰值的计算公式答:c=nl/t c1=c+3√c说明:c是平均的并发用户数,n是login session的数量;l是login session的平均长度;t是指考察时间段的长度。
C1是指并发用户的峰值。
一、Loadrunner简介LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。
通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。
难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。
这些都不可避免地导致公司收益的损失。
Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。
此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
负载测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执行和结果分析。
.(1)计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。
.(2)创建 Vuser 脚本:将最终用户活动捕获到自动脚本中。
选择协议录制脚本编辑脚本检查修改脚本是否有误(3)定义场景:使用LoadRunner Controller 设置负载测试环境。
创建场景(Scenario)选择脚本设置机器虚拟用户数设置Schedule (场景计划表)如果模拟多机测试,设置Ip Spoofer (ip 欺骗)(4)运行场景:通过LoadRunner Controller 驱动、管理和监控负载测试。
Loadrunner进⾏性能测试的步骤Loadrunner 11是⼀款免费的性能测试⼯具,他包含三个⼤模块•使⽤VuGen:创建脚本•运⽤Controller:设置⽅案•查看Analysis:分析测试结果结合软件测试的流程可以知道使⽤LoadRunner进⾏性能测试的过程如下:•规划测试:分析应⽤程序、定义测试⽬标、⽅案实施•创建Vuser脚本•创建⽅案:⽅案包括运⾏Vuser 的计算机的列表、运⾏Vuser 脚本的列表以及在⽅案执⾏期间运⾏的指定数量的Vuser 戒Vuser 组。
•运⾏⽅案:可以指⽰多个Vuser 同时执⾏任务,以模拟服务器上的⽤户负载。
可以通过增加戒减少同时执⾏任务的Vuser 的数量杢设置负载级别。
•监视⽅案:使⽤LoadRunner 联机运⾏时、事务、系统资源、Web 服务器资源、数据库服务器资源、⽹绚延时、流媒体资源、防⽕墙服务器资源、Java 性能等、应⽤程序部署和中间件性能监视器杢监视⽅案的执⾏•分析测试结果:在⽅案执⾏期间,LoadRunner 将记录丌同负载下的应⽤程序性能。
可以使⽤LoadRunner 的图和报告杢分析应⽤程序的性能。
根据性能测试计划,搭建好测试环境后,我们使⽤lr进⾏性能测试的步骤如下:1.使⽤VuGen录制vu要执⾏的测试脚本并完善精简。
录制过程可能有点⿇烦,所以录制成功后最好先做好备份,然后使⽤其中的⼀份进⾏完善脚本的操作,其中需要完善的项⽬有:参数化、关联、检查点、集合点、思考时间、事务等。
再完善了脚本后最后⼀步对脚本进⾏精简⼯作。
(录制的脚本回放时不出错不代表脚本是正确的,单⽤户运⾏脚本不出错也不代表多⽤户运⾏时不出错)录制:设置好录制选项和运⾏时选项,录制好脚本后做好备份⼯作。
参数化:a.为什么做参数化(需要⽤户提供不同的数据才能正常运⾏,这个是从脚本⾃⾝⾓度);b.哪些地⽅需要做参数化;3.怎么做参数化。
a.如果⽤户在录制脚本过程中,填写提交了⼀些数据,返些操作都被记录到了脚本中。
Loadrunner中参数的设置在做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。
该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC 机上),最后生成相关的报告以及分析图。
但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用数据,这就牵涉到参数的设置问题。
本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。
录制程序运行的过程中,VuGen(脚本生成器)自动生成了包含录制过程中实际用到的数值的脚本。
如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。
这个过程称为参数化脚本。
本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。
除了GUI,以下的内容适合于各种类型的用户脚本。
一、关于参数的定义在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。
函数中参数的值就是在录制过程中输入的实际值。
例如,你录制了一个Web应用程序的脚本。
脚本生成器生成了一个声明,该声明搜索名称为“UNIX”的图书的数据库。
当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“UNIX”。
那么,你就可以用参数来取代这个常量。
结果就是你可以用指定的数据源的数值来取代参数值。
数据源可以是一个文件,也可以是内部产生的变量。
用参数表示用户的脚本有两个优点:① 可以使脚本的长度变短。
② 可以使用不同的数值来测试你的脚本。
例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。
在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
参数化包含以下两项任务:① 在脚本中用参数取代常量值。
② 设置参数的属性以及数据源。
1、集合点:插入集合点是为了衡量在加重负载的情况下的性能情况。
在计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到计划中的需求。
2、事务(Transaction):为了衡量的性能,我们需要定义事务。
比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。
这个事务的运行时间在结果中会有反映。
插入事务操作可以在录制过程中进行,也可以在录制结束后进行。
LoadRunner 运行在脚本中插入不限数量的事务。
问题:事务的start_transaction与end_transaction是否可以嵌套?3、参数化输入如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。
这些操作都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。
为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
[信息来自"岁月联盟"]4、参数化包含以下两项任务:资源来自"岁月联盟"①在脚本中用参数取代常量值。
信息来自"岁月联盟"②设置参数的属性以及数据源。
(注:不是所有的函数都可以参数化的。
)5\参数的类型。
["岁月联盟"]DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime 类型来替代。
一、设置集合点集合点可以控制各个Vuser以便在同一时刻执行任务,借助集合点,可以在loadrunner中实现真正意义上的完合一样的并发。
当使用集合点时,可以在系统上模拟较重的用户负载。
当某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合的全部Vuser都到达。
当满足集合条件时,Controller释放Vuser,这样可以产生非常密集的同一类用户操作或请求。
Vuser从集合释放后,将执行脚本中的下一个任务。
集合点一般会创建在用户事务的开始标志彰。
只能在脚本的Action部分(而不是init或end部分)添加集合点。
Lr_rendezvous(“集合点名”)如何设置集合点-录制登录testlink脚本为例:1.从菜单中选择运行Virtual User Generator,在New Virtual User窗口选择Web (HTTP/HTML)协议,点击“Create”按钮。
2.在弹出的窗口中输入要录制的url地址http://192.168.1.251/testlink/login.php?note=expired,并选择"Record into Action"为vuser_init,点击OK正式开始录制,这时会自动打开登录主页面。
3.点击工具条“暂停”按钮暂停录制,并选择“Record into Action”为Action,在登录主页面输入用户名XXX,密码XXX,点击“login”按钮进行登录,登录成功后点击工具条“停止”按钮结束录制,登录脚本录制成功。
4.在脚本Action部分右键选择“Insert→Start Transaction”弹出一个对话框,输入一个事务名字login,点击OK,“Start Transaction”插入完成后,还需要插入一个“End Transaction”,用以标识事务结束。
5.在开始事务前插入集合点,右键选择“Insert”→“rendezvous”弹出一个对话框,输入集合点名字为login,点击OK集合点设置完毕。
二、手动设置检查点为了检查web服务器返回的网页结果是否正确,VuGen支持在脚本中插入Test/Imag检查点。
检查点有两种图片和文字。
可以用三个函数实现:web_find()web_reg_find()web_image_check()1.web_find()函数函数作用:在HTML页面中查找相应的内容参数举例:web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);参数解释:"web_find"定义该查找函数的名称;“LeftOf”和“RighOf=”用来定义查找字符的左右边界;“What=”定义查找内容。
例如上述参数举例中的意思就是在页面中查找左边界为b,右边界为a,内容为name的信息函数用法:该函数是在查找页面中的内容,所以要放在要查找的内容的后面。
注意事项:1.使用该函数时,要在Vuser->Run-Tme Settings中勾选Enable Image and text check,系统默认是不勾选该选项的。
2.函数只能在基于HTML模式录制的脚本中进行查找。
查找用户是否登录testlink成功信息-Testlink 1.8.5 [test desingner]1.切换到Tree view视图,选择action中树形菜单需要插入检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insert after,如图:2.在弹出的对话框中选择“Test Check”,点击“OK”出现Text Check Properties对话框,在“search for ”中填入需要查找信息“TestLink 1.8.5 : XXX [test designer]”, 点击“确定”完成添加text检查点。
3.切换到script view视图,可以看到插入test文本检查点函数web_find(),点击“回放”按钮进行搜索所要查询的文本,在replay Log日志中可以看到Action.c(38): "web_find" successful. 1 occurrence(s) of "TestLink 1.8.5 : XXX [test designer]" found(RightOf="", LeftOf="") [MsgId: MMSG-27196]Action.c(38): web_find was successful [MsgId: MMSG-26392]2、web_reg_find()函数函数作用:在缓存中查找相应的内容参数举例:web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);参数解释:1.Search 用来定义查找范围,默认All,也可选择“headers”或body”部分2.SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到3.Text用来定义查找内容4.Fail if指定在任何情况下报错,有“NotFound”和“Found”两种选择A. web_reg_find("Text=testlink", "Fail=NotFound",LAST);或者B. web_reg_find("Text=testlink", "Fail=Found",LAST);代码思路:1.“testlink" 为你要检查的文本;2. 若是A代码:脚本执行到此处,若没有找到check的字符串,脚本将FAIL,并且停止执行下去。
反之,则一直执行下去。
3. 若是B代码:脚本执行到此处,若找到check的字符串,脚本将FAIL,并且停止执行下去。
反之,则一直执行下去。
函数用法:该函数是在缓存中查找相应的内容,所以要放在查找内容之前。
查找用户XXX是否登录testlink成功信息-Testlink 1.8.5 [test desingner]1.切换到Tree view视图,选择action中树形菜单需要插入文本检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insert before,如图:2.在弹出的对话框中选择“web_reg_find”,点击“OK”出现Find Text 对话框,在“search for specific text”中填入查找信息“TestLink 1.8.5 : XXX [test designer]”, 在“search in”设置查询范围默认“All”,定义Savecount计数变量为“regcheck”,Fail if选择“NotFound”点击“OK”完成添加test检查点。
3.切换到script view视图,可以看到插入test文本检查点函数web_reg_find(),点击“回放”按钮进行搜索所要查询的文本,在replay Log日志中可以看到Action.c(29):Registered web_reg_find successful for "Text=TestLink 1.8.5 : XXX [test designer]" (count=1) [MsgId: MMSG-26364]检查点-打印验证web_reg_find()函数:lr_start_transaction("login");web_submit_data("login.php_2","Action=http://192.168.1.251/testlink/login.php",…LAST);web_reg_find("Fail=NotFound", "Search=All", "SaveCount=regcheck", "Text=TestLink 1.8.5 : XXX [test designer]", LAST);web_url("index.php",...LAST);//判断regcheck是否大于1,如果大于1,检查结果正确,使用lr_output_message 打印,可以供调试时查看//如果检查结果错误,使用lr_error_ message打印,可以在control的errors中显示错误if(atoi(lr_eval_string("{regcheck}"))>0){lr_output_message("成功!");}else{lr_error_message("失败");}lr_end_transaction("login", LR_AUTO);3.web_image_check()函数函数作用:在页面中查找一个具体的图片。
参数说明:web_image_check("web_image_check","Alt=","Src=\'#\'" /span>参数解释:“Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值。
src表示该图片文件的路径,alt表示图片的替代显示文本(在需要检查的页面上右键查看源文件,找到该图片的src和alt值)函数用法:该函数是在缓存中查找相应的内容,所以要放在查找内容之前。
注意事项:使用该函数时,要在Vuser->Run-Tme Settings中勾选Enable Image and text check,具体操作请看web_find()中的注意事项例如:查找用户使用testlink图标-company_logo.png1.切换到Tree view视图,选择action中树形菜单需要插入文本检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insert before,如图:2.在弹出的对话框中选择“Image Check”,点击“OK”出现Image Check Properties对话框,在“ALT attr”中填入图片的替代显示文本“Company logo”, 在“SRC att”中填入图片的路径“gui/themes/default/images/company_logo.png”点击“OK”完成添加图片检查点。