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=http://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。注意调用形式。

获取到服务器数据后,通过添加自己的判断逻辑,来断定事务成功或失败。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值