LoadRunner:关联HTTP请求

LoadRunner:关联HTTP请求

  本例通过一个使用HTTP/HTML协议发送、获取服务器数据的vuser脚本,分析LoadRunner如何进行HTTP关联。

  下面这个例子包括两个事务:上传数据到服务器、下载服务器数据,通过关联将服务器返回的数据保存下来,方便就行分析。

  1、定义变量

  在Action最前面定义变量,否则会报错。

  代码:

  merc_timer_handle_t timer;

  double wasteTime=0;

  char *ActualBuffer;

  int NumberOfBytes;

  char *tmp;

  char tmpcode[24]={0};

  //iterator

  int i=0;

  int j = 0;

  int m = 0;

  //mobile

  char codearray[100][24]={0}; //存储mobile下载的代码,每个代码暂设为24字节长

  char* code;

  short codelen;        //存储mobile下载的代码的长度

  short codenum;        //总代码个数

  int retUL = -1;  //上传返回值

  //int lenUL = 0;   //上传返回长度

  int retDL = -1;  //下载返回值

  int lenDL = 0;   //下载返回长度

  int flag = 0;    //符合的code总数

  //pc

  //char retcodeUL[10]={0};

  //char retcodeDL[2048]={0};

  char* pcretUL;

  char pccode[24]={0};

  char pccodearray[1024][24]={0};

  short pccodelen=0;

  2、保存服务返回数据

  在定义变量或常量后,开始定义事务、进行关联。

  代码:

  web_set_max_html_param_len("2000000");//设置页面接收最大的字节数,该设置应大于下载文件的大小

  //使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容

  web_reg_save_param("filecontent",

  "LB=",

  "RB=",

  "Search=BODY",

  LAST);

  lr_rendezvous("Re_UL_PC");

  lr_start_transaction("UL_PC");

  //pc上传

  web_url("create",

  "URL=10.15.107.112:9089/sys/userdata/create?userid={userid}&content={‘group0‘:[{‘data‘:‘{code1}.stk‘,‘time‘:1376904823299640},{‘data‘:‘{code2}.stk‘,‘time‘:1376904823299647},{‘data‘:‘{code3}.stk‘,‘time‘:1376904823299651},{‘data‘:‘{code4}.stk‘,‘time‘:1376904836969909}]}&fileName=mystock.json&rawtype=true&Accept=json",

  "Resource=0",

  "RecContentType=text/html",

  "Referer=",

  "Snapshot=t1.inf",

  "Mode=HTTP",

  LAST);

  pcretUL = lr_eval_string("{filecontent}");

  if(NULL != strcmp(pcretUL,"{\"state\":1"))

  lr_end_transaction("UL_PC",LR_PASS);

  else

  lr_end_transaction("UL_PC",LR_FAIL);

  在上述代码中,web_reg_save_param函数起到了关联作用,必须在调用web_url之前使用,它的作用类似一个注册机制。调用了语句web_reg_save_param("filecontent",  "LB=",  "RB=",  "Search=BODY",  LAST);之后,LoadRunner自动将服务器返回的HTTP数据的BODY中左右边界(LB左边界,RB右边界)之内的内容保存到变量filecontent中。具体参数说明请参考帮助文档。

  filecontent由系统自动分配,我们只需要给它传个名字,以后可以直接使用该变量。pcretUL = lr_eval_string("{filecontent}");将变量filecontent的内容提取赋值给我们自定义变量pcretUL.注意调用形式。

  获取到服务器数据后,通过添加自己的判断逻辑,来断定事务成功或失败。
时间: 2024-08-29 11:31:59

LoadRunner:关联HTTP请求的相关文章

Loadrunner关联取参及设置检查点

Loadrunner关联取参及设置检查点: 获取post的响应值当作参数存储,要在此post请求之上添加 1 web_reg_save_param("sign", 2 "LB=md5码是:[", 3 "RB=]", 4 "Search=All", 5 LAST); 6 7 8 web_submit_data("tomd5", 9 "Action=http://v49.pclady.com.cn:8

loadrunner关联及web_reg_save_param方法浅析

loadrunner关联及web_reg_save_param方法浅析 一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联.也是把脚本中某些写死的数据,转变成动态的数据. 什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那

Loadrunner 关联 web_custom_request综合实例

Loadrunner 关联 web_custom_request综合实例 Loadrunner 关联web_custom_request,针对自带的订票系统的一个综合实例,相信看了本文大家对学习loadrunner脚本会有很大的帮助. 本实例要解决的问题: (1)动态删除Loadrunner订票系统的一条订单: (2)动态判断表单订单条目,执行取消第一条订单: (3)Loadrunner关联  web_custom_request以及循环语句的应用. 代码不足之处:变量定义太多,希望和大家共同交

Loadrunner模拟Json请求

一.loadrunner脚本创建 1.Insert - New step -选择Custom Request - web_custom_request 2.填入相应参数 3.生成脚本,并修改如下(参数中的引号"前需要加斜杠\转译) Action() { lr_start_transaction("Sendorder"); web_reg_find("Search=Body", "SaveCount=Sendorder_count", &

LoadRunner获取WEB请求头信息的方法:REQUEST、RESPONSE(引)

今天发现LoadRunner两个"内置变量": 1.REQUEST,用于提取完整的请求头信息. 2.RESPONSE,用于提取完整的响应头信息. 响应头信息用可用其它方式实现,但请求头信息还真不知道可以这样拿到.太隐蔽了吧! 注意,这两个变量仅在请求前使用web_save_header注册使用.示例如下: Action(){web_set_max_html_param_len("262144");// 默认最大长度为256web_reg_save_param(&qu

loadrunner关联的感悟:

首先用URL模式录制脚本: 切换到树模式下: 很容易查看到关联的位置,由此知道产生动态值得请求为nav.pl 但是在html中我们怎么查看关联值在哪里呢: 今天无意中意识到这个问题: 先看树视图脚本:

Loadrunner关联

学习LoadRunner之关联(二) Lr学习之关联-随机删除一行数据和全部删除数据 录制一个系统,我录制的是一个交通方面的系统,登陆到系统里面,查询车牌颜色,将其中一条数据删除. "Name=__EVENTTARGET", "Value=", ENDITEM, "Name=__EVENTARGUMENT", "Value=", ENDITEM, "Name=__VIEWSTATEENCRYPTED", &

转:loadrunner关联及web_reg_save_param方法浅析

一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联.也是把脚本中某些写死的数据,转变成动态的数据.什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果.例如:1.登录字

loadrunner处理https请求

录制到的脚本如下: login() { lr_think_time(10); web_url("verifycode.jsp", "URL=https://192.168.211.246:56661/portal/common/jsp/verifycode.jsp?codeSource=loginverifycode&time=1330596177343", "Resource=1", "RecContentType=image