loadrunner工具使用之脚本创建

 

一、创建脚本

         1、打开loadrunner,选择第一个控件VuGen(创建/编辑脚本),点击新建脚本,选择目标协议,创建,如图:

 

         如果测试系统包含多个协议,选择新建多协议脚本,选择目标协议,点击创建,如图:

 

         2、URL地址输入被测系统地址,其他选项默认。如果被测系统不兼容IE,需要修改相应配置:应用程序类型选择Win32应用程序,要录制的程序栏选择支持浏览器.exe执行程序的绝对路径。

 

         3、点击确定,进入录制界面,如图:

 

         录制过程中可以进行一些操作,如点击插入开始事务和插入结束事务可以进行添加和结束事务,点击注释可以添加注释信息。

         4、点击停止,结束录制。结束录制后,lr自动生成初始测试脚本。也可以对录制后的脚本进行添加事务等操作。

 

二、脚本优化

         录制的脚本中会有些无用的请求,需要对把无用的脚本进行删除,如web_add_cookie信息,和其他无用的访问路径。可以根据访问的URL判断是否是需要的请求。

 

三、参数化

         1、选择脚本中需要参数化的数据,右键选择替换为参数(Replace with a parameter),点击属性(proterties),可以选择添加行/列,如果参数化数据量比较大,选择用记事本编辑。

 

 

         2、选择参数的方式可以通过模拟参数的方式进行查看(部分组合可以模拟),根据输入模拟的Vuser数,来模拟用户取值情况。

 

参数组合方式:

更新方法
(update method

数据分配方法(data assignment methed

sequential

random

unique

each iteration

vuser每次迭代都从数据表中获取下一个数据

vuser每次迭代都从数据表中获取一个新的数据

vuser每次迭代都从数据表中获取下一个唯一性的数据

each occurrence(data files only)

每当遇到参数时,vuser就从数据表中获取下一个数据,在同一个迭代中遇到多次也是如此

每当遇到参数时,vuser就从数据表中获取一个新的数据,在同一个迭代中遇到多次也是如此

每当遇到参数时,vuser就从数据表中获取下一个唯一行的数据,在同一个迭代中遇到多次也是如此

once

vuser第一次迭代取得的数据也将为vuser后续的迭代重复使用

vuser第一次迭代时取得的数据也将为该vuser后续的所有迭代重复使用

vuser第一次迭代所获取的的唯一性的数据,也将为该vuser后续的所有迭代重复使用。

 

 

四、事务

         事务可以再录制过程中添加,也可以在录制后添加,添加事务是为了获取事务范围内操作脚本的执行时间。也可以用于通过录制过程中添加事务来判断操作对应的脚本。

开始事务:lr_start_transaction("事务名称");

结束事务:lr_end_transaction("事务名称", LR_AUTO);

添加登陆事务实例:

    lr_start_transaction("登陆");

 

         web_submit_data("login;jsessionid=3F5B12DE3B0CA05A4503CFD38E8852BB",                  "Action=http://{url}:8080/cas/login;jsessionid={CorrelationParameter_1}?service=http%3A%2F%2F10.20.30.32%3A8080%2FSMP%2Fj_spring_cas_security_check",

                   "Method=POST",

                   "RecContentType=text/html",                  "Referer=http://{url}:8080/cas/login?service=http%3A%2F%2F10.20.30.32%3A8080%2FSMP%2Fj_spring_cas_security_check",

                   "Snapshot=t3.inf",

                   "Mode=HTML",

                   ITEMDATA,

                   "Name=username", "Value=test", ENDITEM,

                   "Name=password", "Value=test", ENDITEM,

                   "Name=lt", "Value=LT-{CorrelationParameter_2}", ENDITEM,

                   "Name=execution", "Value=e1s1", ENDITEM,

                   "Name=_eventId", "Value=submit", ENDITEM,

                   EXTRARES,

                   "URL=../favicon.ico", ENDITEM,

                   LAST);

 

         lr_end_transaction("登陆", LR_AUTO);

 

五、集合

         集合点是用于放在目标操作之前,用于使目标达到一定的用户数,同时执行目标操作,从而实现并发的目的,集合点函数:lr_rendezvous("test");

 

六、关联

         关联是为了解决动态session的问题,录制的脚本需要经过回访后,CTRL+F8来扫描脚本中存在的关联。

         关联函数:web_reg_save_param("参数名","LB=左边界‘,"RB=右边","Ord=All",LAST);

         场景:当录制完脚本后,回访过程中,执行日志各项事务执行成功,但是程序结果没有达到预期效果,这时考虑程序中是否需要进行关联操作。

例:

web_reg_save_param(

                   "ParamName=CorrelationParameter_1",

                   "LB=hzcf.tokens.",

                   "RB=\"/>\r\n<input type",

                   SEARCH_FILTERS,

                   "Scope=Body",

                   "RequestUrl=*/investConfirm*",

                   LAST);

 

         web_submit_data("invest",

                   "Action=http://10.10.10.62:8080/hzcf-0.0.1/invest/finance/invest",

                   "Method=POST",

                   "RecContentType=application/json",

                  "Referer=http://10.10.10.62:8080/hzcf-0.0.1/invest/finance/investConfirm",

                   "Snapshot=t9.inf",

                   "Mode=HTML",

                   ITEMDATA,

                   "Name=finance_id", "Value=24126474915151890", ENDITEM,

                   "Name=fprodId", "Value=819441cf29ac45b6838f7c428c6ce38c", ENDITEM,

                   "Name=fprodName", "Value=第2期", ENDITEM,

                   "Name=closeTime", "Value=24", ENDITEM,

                   "Name=totalAmount", "Value=200000000.00", ENDITEM,

                   "Name=investAmount", "Value=100", ENDITEM,

                   "Name=repay_style", "Value=2", ENDITEM,

                   "Name=yearRate", "Value=12.00", ENDITEM,

                   "Name=payAccount", "Value=PAY20150826000005", ENDITEM,

                   "Name=reinvestId", "Value=LEND_013", ENDITEM,

                   "Name=chnId", "Value=CH06", ENDITEM,

                   "Name=hzcf.token.name", "Value=hzcf.tokens.{CorrelationParameter_1}", ENDITEM,

                   "Name=payPasswd", "Value=1", ENDITEM,

                   LAST);

 

七、常见问题

问题现象:录制过程中事件数为0。

解决方法:

         1、录制过程中尽量使用IE或者火狐浏览器,将使用录制的浏览器设置成默认浏览器,且录制之前,先将浏览器关闭;

         2、打开IE-工具-Internet选项-高级-启用第三方浏览器扩展:去掉勾选;系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe;

         3、浏览器版本兼容性问题,更换浏览器版本;

         4、打开IE浏览器,工具-管理加载项,将BHOManager Class状态设置为启用。

 

posted on 2016-08-25 09:54  TestWorld  阅读(1103)  评论(0编辑  收藏  举报