1:LoadRunner接口测试
1.1:Get_Request类型的接口
如下代码 web_url表示发送的是Get类型的请求
Action()
{
web_set_proxy("127.0.0.1:8888");
web_url("Weather Get",
"URL=http://v.juhe.cn/weather/index?cityname=%E6%B1%89%E4%B8%AD&dtype=&format=&key=yourkey",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
return 0;
}
1.2:POST_Request类型的请求
如下代码 web_submit_data函数表示提交的是POST类型的请求 web_add_header函数表示设置POST请求的header参数
Action()
{
web_set_proxy("127.0.0.1:8888");
web_add_header("key","你的Key");
web_submit_data("Weather POST",
"Action=http:http://v.juhe.cn/weather/index",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=cityname", "Value=%E6%B1%89%E4%B8%AD", ENDITEM,
LAST);
return 0;
}
如下代码是登录接口POST接口请求
Action()
{
web_set_proxy("127.0.0.1:8888");
web_submit_data("Default.do",
"Action=http://server ip:port/Mvsp/RegisterLogin/Default.do?Action=Login",
"Method=POST",
"TargetFrame=",
"RecContentType=text/plain",
"Referer=http://server ip:port/Mvsp/RegisterLogin/Default.jsp",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=UserName", "Value=admin", ENDITEM,
"Name=Language", "Value=zh-CN", ENDITEM,
"Name=Password", "Value=123456", ENDITEM,
"Name=AuthCode", "Value=", ENDITEM,
LAST);
return 0;
}
2:编码转换
2.1:UTF-8转换成URL格式
由于URL中不能使用中文 所有部分有中文的get请求参数需要转换成URL编码格式,如下代码将普通中文转换成URL编码格式的核心代码
//将中文转换成UTF-8编码 lr_convert_string_encoding("广州",LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode"); //LoadRunner中需要先保存变量 再赋值给cityName lr_save_string (lr_eval_string("{URLCode}"),"cityName" ); //将cityName转换成URL编码格式 web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST ); |
Action()
{
web_set_proxy("127.0.0.1:8888");
//将中文转换成UTF-8编码
lr_convert_string_encoding("广州",LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode");
//lr_save_string将程序中的产量或者变量保存为LoadRunner的参数 再赋值给cityName
lr_save_string (lr_eval_string("{URLCode}"),"cityName" );
//将cityName转换成URL编码格式
web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST );
web_url("Weather Get",
"URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a65a6769b1845",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
return 0;
}
2,2:参数化城市 并且遍历
1:参数化4个城市 变量名为city
2:设置循环次数为4次
3:代码如下
Action()
{
web_set_proxy("127.0.0.1:8888");
//将中文转换成UTF-8编码
lr_convert_string_encoding(lr_eval_string("{city}"),LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode");
//lr_save_string将程序中的产量或者变量保存为LoadRunner的参数 再赋值给cityName
lr_save_string (lr_eval_string("{URLCode}"),"cityName" );
//将cityName转换成URL编码格式
web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST );
web_url("Weather Get",
"URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a65a6769b1845065f8",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
//POST GET请求内的参数取值不用加lr_eval_string这个函数,其他的需要加这个函数进行取值
lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}"));
lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}"));
return 0;
}
lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}"));
lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}"));
return 0;
}
运行后Fiddler的抓包(只截取了一个城市的)
3:POST/GET请求内部的取参数值与外部取参数值的差别
3.1POST/GET请求内部的取值:不用lr_eval_string这个函数来取值
web_url("Weather Get", "URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a65a6769b1845065", |
3.2:POST/GET请求外部的参数取值:需要用lr_eval_string这个函数来取
lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}")); lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}")); |
4:统计次数
Action() web_set_proxy("127.0.0.1:8888"); //将中文转换成UTF-8编码 //上引号 逗号等需要在前面加转义字符 dates是统计LB RB之间的字符 因此是一个数组 web_reg_save_param("dates", web_url("Weather Get", //将dates数组的长度赋值给int变量size size = lr_paramarr_len("dates"); //POST GET请求内的参数取值不用加lr_eval_string这个函数,其他的需要加这个函数进行取值 return 0; |