LoadRunner学习总结_第1页
LoadRunner学习总结_第2页
LoadRunner学习总结_第3页
LoadRunner学习总结_第4页
LoadRunner学习总结_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 LoadRunner学习小结 今年十月份我到北京跟张坤学习性能测试知识,共花了三个星期学习LoadRunner。以下是我的学习小结。一 什么是LoadRunnerLoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟多个用户实施并发负载测试及实时性能检测的方式来确认和查找问题,能对整个企业架构进行测试。二 LoadRunner的优点1. 轻松创建虚拟用户:通过记录下业务流程转为测试脚本,在机器上产生多个用户访问,减少负载测试需要的硬件和人力资源。2. 创建真实的负载:可以通过Controller设定负载方案,如定义用户在什么时候访问系统以产生负载,所有用户同时执行一

2、个动作来模拟峰值负载情况等。3. 实时监测器:可以实时显示交易性能数据(如响应时间)和其他系统组件如数据库,网络等的实时性能。4. 分析结果以精确定位问题所在:LoadRunner能收集汇总所有测试数据,提供高级的分析和报告工具。三 LoadRunner的安装与使用1.安装过程详见上传的LoadRunner使用手册,在此不再详细介绍。2.具体使用: 点击File新建录制文件,也可以点击下面的NEW快捷键进行新建。使用File新建,会弹出协议选择窗口,选择新的单协议脚本(New Single Protocol Script)的Web(HTTP/HTML)项,确定即可(选择Web项是因为我们测试的

3、是Web应用)。接着会弹出开始录制的设置项,需要写入录入系统的地址,点击确定后就会根据录入地址展现系统页面,开始录制脚本,出现小工具条: 第一个按钮为录制键第二个为回放脚本键第三个为停止录制键第四个为暂停录制键第五个为编译脚本键第六个为创建新的Action键。LR的录制脚本分为三个部分,vuser_init、vuser_end和 Action。脚本循环执行时,只执行一次vuser_init和vuser_end,而多次循环Action部分。比如录制投保业务时,登陆系统部分放入vuser_init,退出登陆放到vuser_end,中间的投保操作放到Action中,则循环执行时就会登陆一次投保系统开

4、始反复执行投保操作直到结束退出系统。第七个为用来改变录制的options设置按钮第八个和第九个为插入事务的起始点和结束点键,结合起来构成一个完整事物,用来衡量服务器的性能。比如录制脚本过程中,投保系统的查询投保单号操作,可以在输入完查询信息后点击查询按钮前插入事务的起始点,查询出数据后插入事务的结束点,这样在运行测试脚本时,Loadrunner在运行到该事务时,便会计算出这个查询操作所花时间,便于衡量服务器执行查询操作的性能。第十个为插入集合点键,可用于衡量在加重负载的情况下服务器的性能。比如要验证系统是否能承受100人同时进行报案操作,便可在脚本录入过程中,点击报案确认键操作前插入集合点,这

5、样当脚本运行到集合点时,Loadrunner会让100个虚拟用户同时点击报案确认按钮(如果有的用户还没运行到集合点,先到用户要等未到用户一起操作)进行报案,从而达到测试目的。最后一个为设置验证点键,在创建事物后,设置一个验证点可以用来确认事物执行是否成功。比如进行查询事务操作时,LR只要检测到网页的响应,就认为事务pass,而不管显示页面内容是否正确。因此为了检查Web服务器返回的网页是否正确,可以插入Text/Image检查点,验证网页上是否存在指定的Text或Image。设置验证点时,如果我们验证的文本内容是中文,有时会返回无法找到验证内容的报错信息,而页面显示又是正确的,出现问题的原因可

6、能是因为LR对中文的支持部好,尽量选择验证信息为数字或字母;也可能是设置问题,可以尝试将Tools->Recording Options->HTTP Properties下的Advanced选项里设置支持UTF-8,再检查开发人员有没有设置支持中文。录制结束后,先点击保存脚本,同时为脚本命名。然后编译脚本,看是否存在语法错误,编译成功后,即可回放,看录制脚本是否成功。LoadRunner录制得到的脚本基本没有错误,不像robot会有录入数据的缺失,只是会录入一些非录入系统的网页信息,根据地址可以识别并删除掉。四 LoadRunner脚本录制学习小结1. LoadRunner录制脚本

7、,主要是为了进行压力测试,所以跑流程时,跑了主要流程即可,也就是系统必须的信息录入就可以了。2. LoadRunner的脚本运行过程中,只能用于一次业务办理的数据需要做参数化,如车辆车架号,车牌,报案号等,以免出现重复投保或报案无法立案现象,不能继续进行下去。参数化步骤:1) 将需要做参数化的数据右键点击,选择Replace with a parameter,进行设置。2) 在弹出编辑框里,设置易懂的参数名称,再点击Properties进行属性设置。3) 点击Create Table 按钮,生成参数表格,再点击Edit with Notepad按钮,即可在记事本里添加新的参数,添加完后再次回车

8、(不回车可能最后条数据读取不到)关闭,参数化操作完成。4) 使用Ctrl +H键可以找到替换同样的需要参数化的数据。3. 脚本跑流程过程中,因为业务运转,前面生成的投保单要接着进行提交核保业务,而每次生成的投保单号不一样,用于进行提交核保的单号也要与之前的保持一致,因此需要做关联处理,读取到生成的新投保单号给提交核保流程。关联步骤: 1) .查找关联数据第一次出现的位置,判断该数据是由什么函数返回的。2) .在树形结构里点击返回该数据值的函数,看它的Server Response信息,用复制的关联数据进行查找它的返回语句,找到区分度明显的语句(不一定要是第一个返回语句),然后使用web_reg

9、_save_param函数进行关联。注:关联函数一定要写在第一个返回该数据值的函数前。3) . web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);  函数的第一个参数是用来对关联数据进行定义的,取名最好可读性强;第二个参数是用来标识关联数据在返回语句里的具体位置的,写出该数据的左右边界,程序才能识别;LAST表示属性列的结束。比如办理理赔业务的流程号,在服务器的返回语句里是:<input name=flowID type="hidden" value=L0

10、00035215>做关联为:web_reg_save_param("LogFlowID", "LB=name=flowID type="hidden" value=", "RB=>", LAST);定义的参数名就叫LogFlowID,表示流程号,易于明白;左边界从name取就可以标识了,也可取长点或短点,只要能区分;右边界只有>,写上就好;最后写上LAST。在定义的左右边界中,如果有双引号,在脚本中是需要转义的,因为双引号在C中是有意义的,这里只要表示语句信息,加上右斜杠。尖括号直写。左右边界也需

11、要用双引号括起来。定义好的参数写在程序中,需要在加上单尖括号:swfLogFlowID=LogFlowID五 脚本执行过程中的报错处理 1. vuser_init.c(3051): Error -26377: No match found for the requested parameter "proposalNo". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web

12、_set_max_html_param_len to increase the parameter size MsgId: MERR-26377 2. vuser_init.c(3051): web_submit_data("UIPrPoEnInputNext.jsp") highest severity level was "ERROR", 4312 body bytes, 258 header bytes MsgId: MMSG-26388 两个错误一起出现,出错语句都是在关联函数下的提交数据函数位置,但是具体出错有可能是: 1). 关联函数左右边界

13、没写对,所有信息都要用字符输入,不能是中文或其他。 2). 在关联函数确认写对的情况下,看提交数据函数中的业务设置,比如有可能是因为保单查询语句,设置的查询时间是过去的时间,新生成的投保单当然查不到,这样程序也会报这样的错。 3. loadrunner 执行理赔的立案处理,录制好脚本后,回放,报错:脚本日志信息提示:1.Action.c(400): Error -26366: "Text=立案信息提交成功" not found for web_reg_find MsgId: MERR-26366 2.Action.c(400): web_submit_data("

14、claimSave.do") highest severity level was "ERROR", 4424 body bytes, 258 header bytes MsgId: MMSG-26388脚本执行过程停止在立案信息提交页面,错误原因:数据问题,可能是有的应该变化的信息没有变。 在该流程中,一个报案号只能做一次立案, 而初始脚本没有设置参数、关联,使用保单号进行查询,错误被掩盖。在立案系统中,一个保单号可以重复报案,但是一个报案号只能一次立案,要跑通流程,需要先将这一保单再重复报案,得到新的报案号。六 性能测试的场景设置脚本录制完毕后,接着准备测试场

15、景。1.首先准备测试数据。比如车险投保,需要投保人和车架号信息来唯一标识一辆被保车,因此就需要将投保人和车架号做参数化处理,编辑文本框录入大量数据让脚本唯一读取:1). 录入投保人参数,车架号参数,过程同脚本录制的参数化处理2). 因为投保人和车架号一起生成一条投保数据,可设置车架号随投保人参数一起读取,设置步骤为:投保人文件存放路径-投保人参数数据读取方式脚本按列名读取参数,每行数据读取一次,每次循环取一次新值。接着设置车架号参数信息:车架号参数读取文件路径设为和投保人文件路径一样脚本按列名读取参数,行号选择和读取的投保人数据同一行这样得到所需的投保单生成参数数据2.设置测试场景 点击Too

16、ls->Create Controller Scenarios,弹出场景类型选择框: 录入需要的虚拟用户数,选择生成结果存放路径和组名。确定后进入具体设置页面:Quantity表示虚拟用户个数,group name为组名。1). 设置运行时间选项Run time Settings选择循环次数Run Logic->Iteration Count,设置循环10次,虚拟用户数为之前设置的5人,则预计一共可生成50张投保单。设置思考时间,思考时间通常是录制脚本过程中,填写页面信息花费的时间,选择忽略项,节省跑脚本的时间。设置网络连接时间,点击网络协议项Internet Protocol 的

17、Options键,将弹出页面里的HTTP-request connect timeout和 HTTP-request receive timeout的数值改为1000。使得能在网络状况不太好的情况下向服务器发送接收数据。2). 设置Edit Schedule 选择虚拟用户加载方式: 可以一次加载所有用户,也可以按需要设置,一秒加载一个用户或其他。 选择结束方式: 当选择一秒加载一个用户时,结束设置为直到跑完所有脚本停止执行。如果选择选择一次加载所有用户可以选择运行多少时间后停止和不停止选项。这些设置完成后,一次测试场景布置完成。可以进行基线检查或单点并发测试。七 性能测试步骤一). 除测试工具

18、外性能测试必备的系统及业务知识 1、熟悉保险行业业务特点,有助于与开发和客户讨论需求,制定测试用例; 2、熟悉系统的实现特点,开发实现方式,有助于选择程序处理复杂、消耗系统资源的用例点; 3、熟悉数据结构,了解数据存储规则,对脚本调试、数据准备、测试执行和监视都有帮助; 4、熟悉系统所使用的数据库、操作系统、中间件的监视和性能问题查看,有助于测试监视和发现问题; 5、熟悉系统架构及系统集成方式,有助于分析及明确定位性能问题。 二) 性能测试执行过程1. 基线检查 1).目的:验证环境是否可用; 验证脚本是否能在场景正常执行。 2).方法:1个人单独循环5次-没有其他人干扰,干净的环境 3).结果:一般一个事物的响应时间超过3秒就可能存在问题,要提报开发人2. 单点并发 1).目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论