LoadRunner接口测试-MD5加密类接口

1:普通的接口测试

1.1:普通接口测试代码如下

Action()
{	
	web_set_proxy("127.0.0.1:8888");//设置fiddler代理拦截请求

	web_submit_data("Default.do", 
		"Action=http://192.158.110.100/Mvsp/RegisterLogin/Default.do?Action=Login", 
		"Method=POST", 
		"TargetFrame=", 
		"RecContentType=text/plain", 
		"Referer=http://192.158.110.100:6606/Mvsp/RegisterLogin/Default.jsp", 
		"Snapshot=t3.inf", 
		"Mode=HTML", 
		ITEMDATA, 
		"Name=UserName", "Value=admin", ENDITEM, 
		"Name=Password", "Value=123456", ENDITEM, 
		"Name=AuthCode", "Value=", ENDITEM, 
	LAST);

	return 0;
}

2:MD5加密接口的参数处理

2.1:MD5接口参数加密传递模型

MD5加密的模型是将 账号+密码+MD5 Code三者组装成一条MD5加密Code(16位/32位)

2.2:LoadRunner处理MD5加密接口的步骤

setup1:右键导入MD5加密算法库

setup2:globals.h中引入md5.h加密算法库

setup3:代码实现

Action()
{	
     
     char MD5Code[80];//定义字符串
     char str[80];
     strcat(str,"admin");//将账号加入到str数组
     strcat(str,"123456");//将密码加入到str数组
     strcat(str,"2090");//将MD5加密code加入到str数组

	 //打印输出str 由于str是定义的变量 不是LoadRunner的参数 所以不用加 lr_eval_string();这个函数
     lr_log_message("str is %s", str); 

	
     GetMd5FromString(str,MD5Code);
	 lr_log_message("MD5Code is %s", MD5Code); 

	 //将自定义的MD5Code变量转换成LoadRunner参数 此时code不用定义 它作为LoadRunner参数
     lr_save_string(MD5Code,"code");

	web_set_proxy("127.0.0.1:8888");//设置fiddler代理拦截请求

	web_submit_data("Default.do", 
		"Action=http://ip:port/Mvsp/RegisterLogin/Default.do?Action=Login", 
		"Method=POST", 
		"TargetFrame=", 
		"RecContentType=text/plain", 
		"Referer=http://ip:port/Mvsp/RegisterLogin/Default.jsp", 
		"Snapshot=t3.inf", 
		"Mode=HTML", 
		ITEMDATA, 
		"Name=MD5Code", "Value={code}", ENDITEM,  
	LAST);

	return 0;
}

setup4:查看运行结果输出

setup6:查看Fiddler拦截的请求

2.3:将账号/密码参数化

setup1:设置参数

setup2:设置迭代次数

Setup3:代码如下

Action()
{	
     
     char MD5Code[80];//定义字符串
     char str[80];
	 //POST GET请求外的参数化需要使用lr_eval_string();这个函数取值
     strcat(str,lr_eval_string("{username}"));//将账号加入到str数组
     strcat(str,lr_eval_string("{password}"));//将密码加入到str数组
     strcat(str,"2090");//将MD5加密code加入到str数组

	 //打印输出str 由于str是定义的变量 不是LoadRunner的参数 所以不用加 lr_eval_string();这个函数
     lr_log_message("str is %s", str); 

	
     GetMd5FromString(str,MD5Code);
	 lr_log_message("MD5Code is %s", MD5Code); 

	 //将自定义的MD5Code变量转换成LoadRunner参数
     lr_save_string(MD5Code,"code");

	web_set_proxy("127.0.0.1:8888");//设置fiddler代理拦截请求

	web_submit_data("Default.do", 
		"Action=http://ip:port/Mvsp/RegisterLogin/Default.do?Action=Login", 
		"Method=POST", 
		"TargetFrame=", 
		"RecContentType=text/plain", 
		"Referer=http://ip:port/Mvsp/RegisterLogin/Default.jsp", 
		"Snapshot=t3.inf", 
		"Mode=HTML", 
		ITEMDATA, 
		"Name=MD5Code", "Value={code}", ENDITEM,  
	LAST);

	return 0;
}

 

猜你喜欢

转载自blog.csdn.net/hujyhfwfh2/article/details/82824919