ALL (search Body and headers). The default value is ALL.
RelFrameID: The hierarchy level of the HTML page relative to the requested URL.一般取1
ORD: This parameter, also known as Instance, indicates the ordinal or instance of the match. 一般取 1
LR7.8已经为用户定义好了很多类型的关联,我们可以自己定义New rule,不过我在录制脚本的时候一般把系统的那些都关掉,定义自己的,只是有的时候,它不能自动关联,就干脆手工作了。需要关联的地方:一般是在有主键,不允许记录重复,和一些主程序中传递过来的参数,在后面要用到等情况才使用关联的,你可以先执行一遍,如果有些地方不允许重复可参数值无效,就会出错的,根据错误提示你可以判断出来,就知道需要关联了。一般需要关联的不多,我现在遇到的就是进程号,以及表的主键。我这里有个Correlation的官方文档,大家下去可以自己看看。 ?
LR的脚本是C语言代码,LR有自己的一整套函数接口,可以供外部调用,在VUGen里面敲Lr_就可以看到了。Web(Http/Html),
脚本本身分INIT,ACTION,END三部分,各部分的解释:INIT部分可以理解为初始部分,ACTION可以理解为事务部分,也是测试的主体,END是退出结束。重复的时候,仅重复action部分。我们一般把登录部分放在init,退出放到end,只会执行一次,或者有的时候,各部分反复的次数不一样,分成多个action,可以单独设定反复次数。(如果需要在登陆操作设集合点,那么登陆操作也要放到Action 中,因为vuser_init 中不能添加集合点)
以录制Web(Http/Html)协议为例讲述一下LR的脚本的录制
Init,login
#include \
#include \m_body.h\
vuser_init() {
//登录的脚本可以放在这里 }
1. 录制前的选项设置:
6
解释:1.基于浏览器的应用程序推荐使用HTML-based Script, 脚本中采用 HTML 页面的形式来表示,这种方式的Script 脚本容易维护,容易理解。 2.不是基于浏览器的应用程序推荐使用URL-based Script,脚本中的表示采用基于URL 的方式,不是很好阅读。
解释:1.是否记录录制过程中的ThinkTime,如果记录,还可以设置最大值,一般我不记录这个值。
7
2.通知Vugen去重新设置每个action之间的Http context,缺省是需要的。 3.完整记录录制过程的log,
4.保存一个本地的snapshot,可以加速显示 5.把html的title放到web_reg_find函数里面 6.支持的字符集标准 7.Http header的录制,我们采用缺省即可,不需要用web_add_header去录制非标准的header信息。 对录制的content的内容进行filter,不作为resource处理的。
解释:这个就是我么前面提到的关联,系统已经预先设置好了一些常见的关联rules,我们录制脚本之前,可以把系统的都关掉,定义自己的,只是有的时候,它不能自动关联,就干脆手工关联。这里比较重要,我还有一个专门的PPT文档是详细讲这个的,大家可以到我的网站上下载。
2. 现在可以开始录制脚本了,我给出几段已经录制好的脚本。
lr_rendezvous(\
lr_start_transaction(\ web_url(\ \ \ \ \ \ \ LAST);
8
web_url(\ \ \ \ \ \ \ LAST);
//可以自己手工,也可以让correlate定义一个动态参数
web_reg_save_param( \\name='\\\\\ web_submit_form(\ \ ITEMDATA, \alue={schedule_name}\ \alue=preProductionHeaderTemplate\ \alue=1\ \alue=preProductionDetailTemplate\ LAST); web_url(\ \ \ \ \ \ \ LAST); lr_end_transaction(\
lr_rendezvous(\ lr_start_transaction(\ web_submit_data(\ \ \ \ \ \ \ ITEMDATA, \alue={schedule_id}\ \alue={schedule_name}\ \alue=Spring 2004\ \alue=ANF\ \WCSParam_Diff2}\alue=test001\ \alue=\ \alue=\ \alue=Y\ \alue=true\ \alue=\
9
\alue=\ \alue=\ \alue=-1\ \alue=\ LAST); web_url(\ \ \ \ \ \ \ LAST); web_url(\ \ \ \ \ \ \ LAST); lr_end_transaction(\);
解释:1.几个函数的解释:
1) int web_url (const char *Name, const char * url, ,
[EXTRARES, ,] LAST );
这个函数load 指定的web页面 . *Name:页面的name; ? url:页面的url,Resource:指示the URL是否是一个资源。0,不是,1,是。 ? RecContentType:录制脚本过程中,Header响应的类型,e.g. text/html, application/x- javascript ? ? ? ?
Referer – 参考web页的the URL Snapshot - snapshot 文件名(扩展名inf), correlation的时候要的。 Mode – 录制的级别: HTML or HTTP Last- 属性列表的结束标志。 10