loarunner(一)

录制原则:

  • 基于浏览器的应用程序推荐使用HTML方式
  • 不是基于浏览器的应用程序推荐使用URL方式
  • 如果基于浏览器的应用中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL方式
  • 基于浏览器的应用中使用了HTTPS安全协议,使用URL方式
事务(Transaction):为了衡量服务器的性能,我们需要定义事务。可以在录制过程中插入,也可以在完成后在脚本中插入。
事务的作用:LoadRunner运行到该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的结束点,计时结束。通俗的讲LoadRunner中的事务就是一个计时标识,事务时间所反映的是一个操作过程的响应时间

使用事务的原因:

       1、事务是LoadRunner度量系统性能指标的唯一手段;

  2、事务能够用于度量高风险业务流程的性能指标;

  3、事务能够度量在一组操作中每一步的性能指标;

  4、通过事务计时实现了不同压力负载下的性能指标对比;

  5、通过事务计时可以帮助定位性能瓶颈;

事务的开始函数:lr_start_transaction()  eg:  lr_start_transaction("登陆");

事务的结束函数:lr_end_transaction()    eg:lr_end_transaction("登陆",LR_AUTO);

事务的状态包括:LR_PASS、 LR_FAIL 、  LR_AUTO 、  LR_STOP  。 eg:lr_set_transaction_instance_status(LR_FAIL);

lr_fail_trans_with_error除了可以设置的状态,还可以输出错误日志信息。

lr_fail_trans_with_error("an error has occurred:%",my_get_error_string(status));

获取事务的状态:lr_get_transaction_status()

获取事务所消耗的时间:trans_time=lr_get_transaction_wasted_time()
关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。
当客户端的某个请求是随着服务器端的相应而动态变化的时候,我们就需要用到关联.

手动关联 

第一种:

int web_reg_save_param( const char *ParamName, <List of Attributes>, LAST );  

第一部分(const char *ParamName):参数名,用双引号括起来,逗号分开

第二部分(<List of Attributes>):包括LBRBRelFameIDOrdSearchSaveOffisetSaveLen等。

第三部分(LAST ):结束标志。

  第一步:录制测试脚本,录制二遍
  第二步:使用WinDiff工具协助找出需要关联的数据
  1. 在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。
  2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。
  查看二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。
  注意:lr_thik_time部分的差异可以忽略
  找到不同的部分后,复制,然后打开Recording Log或是Generation Log,按Ctrl+F,在查找窗口中粘贴差异部分的内容,点击查找找到后,查看该部分的信息,确认是客户端的请求信息还是服务器回应的信息
  如果出现在

RequestHeaderForTransactionWithId3Ended
这个部分,那证明是客户端发出的请求,这里是不需要做关联的
  一般做的关联都是出现在****** Response Header For Transaction With Id 7 ******和****** Response Body For Transaction With Id 7 ******中的部分。
  在找到这个信息后,需要记录如下信息:
  a、记录这个不同数据之前的内容和之后的内容
b、记录这个不同数据出现的位置,是Header还是Body
第三步:确认插入关联的位置
  我们在 日志 中找到了两次脚本的不同点的位置,根据这个位置,我们再确定是在哪个请求之后产生的,也就是说要定位发生不同点的response是由哪个request产生的,找到了这个请求的函数位置,我们就知道要往哪里做关联了。
  一般情况下关联函数写到发出请求的函数之前就可以了。
  第四步:插入关联函数
  在插入关联函数前,我们先介绍关联函数web_reg_save_param
  一个web_reg_save_param函数的例子:
web_reg_save_param ("sessionid",
  "LB=Session_id:",
  "RB=;",
  "Search=Body",
  LAST);
  在这里我们只介绍几个常用参数的含义
  语法:int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);
  参数说明:
  ParamName: 存放得到的动态内容的参数名称
  list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
  LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。
  RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。
  Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。
  那么 如何 插入该关联函数呢?
  1.将vugun切换到 view tree 模式下
  2.在左边的列表中,找到在上一步发出请求的函数,点击“右键”
  选择“insert before”
  3.在弹出的“add step”对话框的“find function”中输入“web_reg_save_param”,点击“ok”
  在“parameter name”中输入,关联函数的名称,这里最好有含义,“sessionid”
  在“left boundary”中输入,刚才记录下的不同点字符串的左面的几个字符,定义左边界,Session_id:
  在“right boundary”中输入,刚才记录下的不同点字符串的右面的几个字符,定义右边界,;
  在“search in ”中,选择“body”
  点击“ok”
  4.回到脚本编辑模式下,查看该函数插入是否正确
  在发出请求的函数前应该看到:
web_reg_save_param ("sessionid",
  "LB=Session_id:",
  "RB=;",
  "Search=Body",
  LAST);
  第五步:将脚本中有用到关联的数据,用参数代替
  如发出请求的参数如下,那么将原来服务器返回的动态值使用{ sessionid } 来替换:
web_submit_form("login.php_2",
  "Snapshot=t2.inf",
  ITEMDATA,
  "Name=login", "Value=wangjin", ENDITEM,
  "Name=password", "Value=wangjin", ENDITEM,
  "Name=Session_id","Value={ sessionid } ", ENDITEM,
  "Name=Submit", "Value=Login", ENDITEM,
  EXTRARES,
  "URL=/media/images/border_bg_l.gif", ENDITEM,
  "URL=/media/images/header_bg.gif", ENDITEM,
  "URL=/media/images/th.gif", ENDITEM,
  LAST);
  第六步:验证关联的正确性
  回放脚本,验证关联的正确性。

第二种:

选择Tree 视图模式,点击HTTP View 下查看Response Body 中,打到需要关联的内容,右键在下拉列表中选择“Create Coorelation”

预关联 

预关联也可以叫做“ 一边录制一边关联”

在录制脚本时打开Recording Options 设置窗口

1、点击一New Application 按钮,新建一个叫做WebTours 的应用

2、选择这个规则,点击 New Rule 按钮一个规则。

3、然后做如下设置:


菜单栏 Insert --- new step  打开 add step  窗口


搜索web_reg_save_param_ex 函数,选中函数,点击OK ,弹出函数的设置窗口:


Prameter name此设置存放参数的名称。

Left boundary此处设置左边界,这里是用来填写关联对于数据处理的左匹配内容规则。

Match case :  默认情况下边界是检查Match case ,也就是检查大小写的。

Binary data : 如果要关联的内容是非ASCII 字符的,需要选择此项

Regular expression : 在LR11 中关联提供了使用正则表达式的功能,但是LR11 Patch3 中取消web_reg_save_param_ex 函数对此功能的设置。

Reight boundary此处设置右边界。

DFEs 在录制选项和回放中我们提供了DFE的功能,在关联这里也支持DFE的数据处理。 (DFE等后面再解释,或你自行查资料)

Ordinal :  这个关键字在很多函数里面都有应用,在这里可以填写任意一个整数,也可以填All 。如果填写数字,那么说明从返回的记录中取出对应顺序的值,而填写All 的话将会返回所有内容。

Save Offset : 设置关联的内容偏移量,从第几位开始进行关联操作。

Save Length : 关联出来的内容所需要保存的长度。

Warm if text was not found (Default is Error) 对于关联的对象不存在的处理。

Filters : 下面的选项都是帮助关联返回限定的,通过这些设置可以进一步减少返回的范围。

自动关联 的步骤如下:
1.开启自动关联选项
刚才提到的两种关联机制,如果用户想使用loadrunner自带的关联规则创建关联,那么需要在【Recording Options】>【Internet Protocol】>【Correlation】中启用关联规则,选中“Enable correlation during recording”,当录制这些应用 系统 的脚本时,VuGen会在脚本中自动建立关联。也可以在【Recording Options】>【Internet Protocol】>【Correlation】中添加关联规则,达到自动关联的目的。
如果需要在回放脚本时,loadrunner自动检测需要关联的部分,那么需要在【Tools】>【general options】>【Correlation】中选中“save correlation information during replay”和“show scan for correlations popup after replay of vuser”,当回放玩脚本后,会弹出Scan action for correlation窗口,进行关联点的搜索
2.录制脚本
录制脚本的过程在这里就不多说了
3.回放脚本
如果录制的脚本存在需要做关联的部分,那么在回放脚本时会出现错误
4.系统自动弹出检测关联对话框,或手动启动关联检测对话框
如果选择了【Tools】>【general options】>【Correlation】中的“save correlation information during replay”和“show scan for correlations popup after replay of vuser”,那么在回放脚本后会自动弹出“Scan action for correlation”窗口,点击“yes”进行自动查找
如果没有选择上述 设置 ,那么也可以按CTRL+F8启动关联自动搜索
5.查看系统检测出的关联点进行关联设置
如果在录制和回放中存在差异,loadrunner会在“Correlation Results”中列出需要做关联的内容,用鼠标点击一条需要做关联的内容,点击“Create Rule”,系统会显示获得当前数据的规则,点击“yes”,完成规则的创建,同时查看脚本中增加了一个web_reg_save_param函数
也可以点击【Correlate】按钮创建关联,一笔一笔做,或是按下【Correlate All】让VuGen一次就对所有的数据建立关联。
注意:由于Correlation Studio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【Correlate All】。
6.回放脚本 检查 关联的正确性
创建好关联后,回放脚本检查关联的正确性




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值