您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > LoadRunner使用技巧及相关知识点滴
LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分LoadRunner测试BOSS技巧——山东移动BOSS1.5修订纪录日期修订版本修改描述作者2005-10-30V1.0初稿完成徐林林2007-11-18V1.1修订与补充运行原理图以及组件关系图徐林林第1页共28页作者:徐林林LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分1.概述在山东BOSS性能压力测试过程中,发现脚本对于整个压力测试过程的重要性,一个压力测试脚本录制和编辑修改得怎么样直接影响后面压力测试的执行。通常情况下,脚本应尽可能的精简,就像写代码一样。针对BOSS系统的特点,个人认为把单一业务录制成一个Action,并在脚本中添加Transaction,Find检查(可以采用URL-basedscript方式录制并事先设定),Rendezvous,参数化等基本元素,然而有时我们会发现光有这些基本元素还不能满足我们的要求。比如在Controller中运行我们的脚本时,一旦压力过大或某种原因导致某一业务失败,而此时我们很想尽快地找出错误的原因。当然此时我们第一想到的是,查找日志,但是有时发现查找日志很不方便,因此我们希望寻求一种更快捷的方式,希望能直接从Controller的Errors错误中找到出错的服务号码、在第几次Iteration的哪个Transaction出错。实现的方式,当然是通过简单的编程来调用错误日志里的信息,另外本文中还简单介绍了关于LoadRunner工具使用的一些常用注意事项、脚本处理技巧和一些常用性能参数的分析及性能测试中机器瓶颈的定义和查看机器瓶颈的相关命令。下面再具体的一一介绍:2.一个规范的性能测试脚本就像一段规范的程序代码一样,需要基本的说明信息:在下面要介绍的脚本中,我把这些信息以注释的形式放在vuser_init昀前面:/*@Athour:徐林林@Date:2005-09-18@Name:异地缴费压力测试脚本@Parameter:BOSSURL,LogName,PhoneNum,iteration,FanHui@Data:BOSSURL:BOSSURL.dat;//由于BOSS压力测试前台展现环境多,故将地址也参数化。LogName:LogName.dat;//登录用操作员,选择具备异地缴费权限的操作员,这里选择的是德州操作员300个。PhoneNum:PhoneNum.dat;//用于异地缴费的服务号码,这里选择的是烟台的正常在用的标准全球通号码3000个。iteration:iteration.dat;//用于压力测试出错时,打印出错所在的循环次数。@Description:此脚本用于测试异地缴费的性能及稳定性,选用德州的操作员对烟台的标准全球通号码进行异地缴费,目标是通过vuser模仿真实操作员进行异地缴费,达到验证或测试系统性能和稳定性的目的。第2页共28页作者:徐林林@Notes:脚本的录制使用的是LoadRunner8.0的VU,采用的是URL-basedscriptLoadRunner测试BOSS技巧创建时间:2005-10-3115时51分方式,需要特别注意的是RecordingOptions(按Ctrl+F7)的Advanced选项里的SurportCharset一般情况默认为不选,除非字符集合采用的是国际标准才选中UTF-8选项,否则会出现汉字乱码现象。*/3.通常情况下,任何业务必须在登陆成功后才能做,所以有必要对登陆成功与否进行判断:下面我从脚本中取出相关部分进行简单介绍:vuser_init(){intstatus;//定义变量用于判断登陆是否成功web_reg_find(Text=山东移动BOSS,LAST);…….…….web_submit_data(reguserAction.do,//登陆提交数据Action。Action=http://{BOSSURL}/boss/reguserAction.do,Method=POST,RecContentType=text/html,Referer=http://{BOSSURL}/boss/index.jsp,Snapshot=t12.inf,Mode=HTTP,ITEMDATA,Name=logname,Value={LogName},ENDITEM,Name=password,Value=,ENDITEM,LAST);status=web_submit_data(reguserAction.do,//取成功与否标志Action=http://{BOSSURL}/boss/reguserAction.do,Method=POST,RecContentType=text/html,Referer=http://{BOSSURL}/boss/index.jsp,Snapshot=t12.inf,Mode=HTTP,ITEMDATA,Name=logname,Value={LogName},ENDITEM,Name=password,Value=,ENDITEM,LAST);if(status==LR_FAIL)//一旦登陆失败,脚本给出提示报错信息。第3页共28页作者:徐林林{LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分lr_error_message(错误信息:%s,不能正常登陆!);return-1;}}4.事务的定义,很简单,也很有必要,尽量是每个定义的事物符合逻辑和小。在下面的脚本中,在异地缴费这一业务中定义了两个Transaction:准备异地缴费数据和提交异地缴费,见如下脚本代码:lr_start_transaction(准备异地缴费数据);web_set_max_html_param_len(4096);……….web_submit_data(chargeacc.do,Action=http://{BOSSURL}/boss/charge/commonbusiness/acccharge/chargeacc.do?act=queryaccount,Method=POST,RecContentType=text/html,Referer=http://{BOSSURL}/boss/charge/commonbusiness/acccharge/acccharge.jsp?act=first,Snapshot=t74.inf,Mode=HTTP,ITEMDATA,Name=isconfirm,Value=no,ENDITEM,Name=chargetype,Value=telnumber,ENDITEM,Name=telnumber,Value={PhoneNum},ENDITEM,Name=nowfee,Value=0.0,ENDITEM,Name=factfee,Value=,ENDITEM,Name=totalfee,Value=0.0,ENDITEM,LAST);lr_end_transaction(准备异地缴费数据,LR_AUTO);第4页共28页作者:徐林林LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分5.增强脚本,对脚本进行简单的编程。增强脚本,对脚本进行简单的编程,为性能或压力测试提供方便,这也是写本文的宗旨,下面对此做简单的介绍:5.1首先,定义成功与否的判断标志或字符串。在此,我把判断成功与否的标志定义在异地缴费Action昀前面,具体定义如下:charfanhuiflag[30]=操作业务数据成功!;但是大家可能会问,字符串操作业务数据成功!从何处而来,可以肯定的不能凭空想象,成功标志可从两三种方式来取得:第一种:也是昀简单的一种,直接从脚本中取得,具体操作是以ViewTree方式找到相关的界面,然后从ServerResponse的Snapshot的Body里去取。见下面的图片:注:Snapshot在录制前要将RecordingOptionsAdvanced里的Savesnapshotresourceslocally选项选中。第5页共28页作者:徐林林LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分第二种方式,从脚本代码中去取,即取find函数中相关字符串,具体做法是,找到在提交事件前的web_reg_find函数,然后从中取相关字符串。web_reg_find(Text=---------操作业务数据成功!--------,LAST);第6页共28页作者:徐林林值得注意的是要有web_reg_find函数,可以在录制前选中RecordingOptionsAdvanced里的Generateweb_reg_findfunctionsforpagetitles选项,见下图所示:LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分第三种方式,从本地的snapshot里去取,具体操作,首先找到提交数据事件相关脚本,找到snapshot文件的名称,然后从本地的data文件里去找这个snapshot文件,然后丛中找到我们需要的字符串。web_reg_find(Text=---------操作业务数据成功!--------,LAST);…….web_submit_data(chargeacc.do_3,Action=http://{BOSSURL}/boss/charge/commonbusiness/acccharge/chargeacc.do?act=submit&atype=commitdata,Method=POST,RecContentType=text/html,Referer=http://{BOSSURL}/boss/charge/commonbusiness/acccharge/chargeacc.do?act=querycustomer,Snapshot=t129.inf,Mode=HTTP,ITEMDATA,Name=isconfirm,Value=no,ENDITEM,Name=chargetype,Value=telnumber,ENDITEM,Name=telnumber,Value=,ENDITEM,Name=nowfee,Value=8.8,ENDITEM,第7页共28页作者:徐林林Name=factfee,Value=0.00,ENDITEM,LoadRunner测试BOSS技巧创建时间:2005-10-3115时51分Name=totalfee,Value=8.8,ENDITEM,Name=accountno,Value={WCSParam_Diff1},ENDITEM,Name=factpay,Value=8.8,ENDITEM,Name=grantpercent,Value=,ENDITEM,Name=grantfee,Value=0,ENDITEM,Name=takecash,Value=8.8,ENDITEM,Name=zero,Value=0,ENDITEM,Name=paytype,Value=Cash,ENDITEM,Name=remark,Value=,ENDITEM,Name=invoice,Value=joininvoice,ENDITEM,LAST);5.2设置和保存判断成功与否的参数,这也是昀关键的地方。有一点大家都很清楚,业务成功返回的字符串和失败返回的字符串是不同的,我们所要做的是将返回的字符串做为参数保存下来,然后拿这个参数和我们事先定义好的成功的标志做比较,有两种方式可以设置和保存这一参数,下面简单介绍:第一种方式也是昀准确的方式,是以ViewTree方式找到相关的界面,然后从ServerResponse的Snapshot的Body里的成功的返回标志,然后对其进行CreateParameter,这样LoadRunner会自动在脚本中添加web_reg_save_param函
本文标题:LoadRunner使用技巧及相关知识点滴
链接地址:https://www.777doc.com/doc-5144582 .html