loadrunner 记录抓取服务器返回的关联数值并保存在log.txt
//192.168.157.77
文件:D:\TestCase\20121010_archive_manager\pspre.cn******.com\tc_dangan_shenqin_add_data20121102\action.c
内容:
Action() { char *pr; char *filename= "d://log.txt"; long file; char *p; // 其他脚本代码 、、、 web_reg_save_param("MyBusinessCodeList", "LB='businessCode' value ='", "RB='", "Ord=1", "NotFound=ERROR", "Search=All", LAST); // 其他脚本代码 、、、 if ((file = fopen(filename, "at")) == NULL ) { lr_error_message("Cannot open %s", filename); return -1; } //p = lr_eval_string("{MyBusinessCodeList}"); //打印单列参数化数据log p = lr_eval_string("{MyBusinessCodeList},{MyBusinessCodeList}"); //打印多列参数化等数据 while ((*p != NULL) && fputc(*(p++), file) != -1); fputc('\n',file); fclose(file); return 0; }
http://hi.baidu.com/sherry19900326/item/e3df4533061d151b9dc65e7c
Loadrunner关联(三)手动关联
Loadrunner(三)手动关联
手动关联的过程大致如下:
第一步:录制测试 脚本,录制二遍
第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联
第三步:确定插入关联的位置
第四步:在VIEW TREE中使用web_reg_save_param函数手动建立关联
第五步:将脚本中有用到关联的数据,用参数代替
第六步:验证关联的正确性
下面详细介绍:
第一步:
录制测试脚本,录制二遍
这一步就不用多说了,相同的操作,录制两份,分别保存
第二步:
使用WinDiff工具协助找出需要关联的数据
1.在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。
2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文 字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。
查看二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。
注意:lr_thik_time部分的差异可以忽略
找到不同的部分后,复制,然后打开Recording Log或是Generation Log,按Ctrl+F,在查找窗口中粘贴差异部分的内容,点击查找找到后,查看该部分的信息,确认是客户端的请求信息还是服务器回应的信息
如果出现在$$$$$$ Request Header For Transaction With Id 3 Ended $$$$$$这个部分,那证明是客户端发出的请求,这里是不需要做关联的
一般做的关联都是出现在****** 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);
第六步:
验证关联的正确性
回放脚本,验证关联的正确性
loadrunner 关联函数的高级应用
http://xitong.iteye.com/blog/1822319
Action()
{
long file;
char *filename="F:\\android\\data.txt";
int cnt=1;
int i=1;
if((file=fopen(filename,"wb"))==NULL)
{
lr_output_message("打开文件失败");
return 0;
}
web_reg_save_param("searchid",
"LB=\"",
"RB=\",",
"Ord=All",
"NotFound=ERROR",
"Search=Body",
"Convert=HTML_TO_URL",//将数据由HTML-encode数据转成URL-encode
LAST);
web_url("百度",
"URL=http://suggestion.baidu.com/su?wd=load&p=3&cb=window.bdsug.sug&t=1295341253328",
"Resource=1",
"RecContentType=baiduapp/json",
"Referer=http://www.baidu.com/",
"Snapshot=t10.inf",
LAST);
for(i=1;i<=lr_paramarr_len("searchid");i++)//lr_paramarr_len("searchid")=atoi(lr_eval_string(searchid_count))
{
lr_save_string(lr_paramarr_idx("searchid",i),"userid");
lr_output_message("%s",lr_eval_string("{userid}"));
fwrite(lr_eval_string("{userid}"),strlen(lr_eval_string("{userid}")),1,file);
fwrite( "\r\n",2,1,file );
}
lr_save_string(lr_paramarr_random("searchid"),"temp");
lr_output_message("随即取的值是:%s",lr_eval_string("{temp}"));
return 0;
}
end
相关推荐
于是需要首先读出当前的事务的状态,再进行修改,此时便可以使用到web_reg_save_param了。可以通过它先将事务的状态读出写入一个自定义的变量中,根据变量的值来决定下一步的动作。 简要说明 语法:intweb_reg_...
### 在LoadRunner中使用`web_reg_save_param()`进行关联 #### 一、LoadRunner关联概述 在LoadRunner中,关联是一种重要的技术手段,用于解决在录制脚本时遇到的动态数据问题。通常有两种关联方式:手动关联和自动...
标题“web test LoadRunner SAP / java / Java Vuser / web_set_max_html_param_len”涉及到的是在性能测试领域中,如何使用LoadRunner工具针对Web应用程序进行测试,并特别关注SAP、Java以及Java Vuser(虚拟用户)...
HP_LoadRunner_12_Community_Edition_Additional_Components_T7177-15046文件分割成两个压缩包,必须凑齐两个才能解压缩使用: HP_LoadRunner_12_Community_Edition_T7177-15046.part2.rar ... HP_LoadRunner_12_...
Micro_Focus_LoadRunner_2022_Community_Edition_Additional_Components
HP_LoadRunner_12_Community_Edition_Additional_Components_T7177-15046文件分割成两个压缩包,必须凑齐两个才能解压缩使用: HP_LoadRunner_12_Community_Edition_T7177-15046.part1.rar ... HP_LoadRunner_12_...
标题“web test LoadRunner fuction_list”涉及到的是使用LoadRunner进行Web测试的相关知识,特别是关于LoadRunner中的函数列表。LoadRunner是一款由Micro Focus公司开发的性能测试工具,它能够模拟大量用户并发执行...
文件为百度网盘链接; 内容包含HP_loadRunner_12.02_Community_Edition_T7177安装包和汉化包; 文件总共大小:1,782,393,386 字节。
《HP LoadRunner 12.02 Community Edition:性能测试的得力工具》 HP LoadRunner,作为业界知名的企业级负载测试工具,以其强大的功能和广泛的协议支持在IT行业中占据了重要地位。本篇将深入探讨HP LoadRunner ...
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试...
本文将深入探讨LoadRunner中的几个关键函数——`web_reg_save_param`、`lr_save_string`和`lr_eval_string`,它们在实际测试场景中扮演着重要角色。 1. `web_reg_save_param`函数: 这个函数主要用于动态参数的...
Micro_Focus_LoadRunner_2022_Community_Edition_Language_Packs 2022最新版loadrunner语言包