loadrunner 手动编写http接口性能脚本(Get请求和Post请求)
前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接口的目的;
loadrunner默认的脚本是C语言的,百度之后发现其实它支持目前所有主流的语言,如:Java User、VB User、VB script User 、Javascript User等。
下面是尝试过的几种post接口的请求方式:
- Post接口,通过JSON方式请求:
int i;
game()
{
//赛事列表接口开始时间,时间戳
lr_save_string("","gameHoldBeginTime");
//赛事列表接口结束时间,时间戳
lr_save_string("","gameHoldEndTime");
//gameCode
//lr_save_string("1532122","gameCode");
//以下接口循环请求两次
for (i=0;i<2;i++)
{
/*胜负盘赛事列表接口*/
web_reg_save_param ("S_respond","LB=","RB=",LAST);
//获取赛事编码gameCode,提供给后续接口调用
web_reg_save_param("gameCode","LB=gameCode\":\"","RB=\"",LAST);
web_add_header("Content-Type","application/json; charset=UTF-8");
lr_start_transaction("listGames");
web_custom_request("listGames",
"URL={url}/common/listGames",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Snapshot=t3.inf",
"Mode=HTML",
"EncType=application/json; charset=UTF-8",
"Body={\"requestId\":\"{requestId}\",\"timestamp\":\"1523503209424\",\"version\":\"1.0.0\",\"clientId\":\"{clientId}\",\"accessToken\":\"{token}\",\"data\":{\"gameHoldEndTime\":\"{gameHoldEndTime}\",\"gameHoldBeginTime\":\"{gameHoldBeginTime}\",\"gameType\":\"ALL\"},\"sign\":\"{sign}\"}",
LAST);
lr_end_transaction("listGames", LR_AUTO);
//打印返回信息
lr_convert_string_encoding ( lr_eval_string ("{S_respond}"),LR_ENC_UTF8 ,NULL,"respond");
//打印转码后的响应报文
lr_output_message ( "\nlistGames :%s",lr_eval_string ("{respond}"));
//循环结束
}
}
- Post请求,使用from-data方式进行请求的时候,脚本的写法:
lr_start_transaction("saishiPost"); web_submit_data("saishiPost", "Action={url}/higame/saishiPost", "Method=POST", "TargetFrame=", "EncType=multipart/form-data",//使用的编码类型 "Referer=https://yqcqtest.100bei.com/higame/gamelist", "RecContentType=application/josn", "Mode=HTML", ITEMDATA, //下面编辑post请求的数据 "Name=gameState", "Value=WAITING", ENDITEM, //数据的name、value及结束符 "Name=riqi", "Value=2018-06-08", ENDITEM, //第二条数据的name、value及结束符 "Name=leagueCode", "Value=", ENDITEM, LAST); //结束事件 lr_end_transaction("saishiPost", LR_AUTO); //打印返回信息 lr_convert_string_encoding( lr_eval_string("{S_respond}"),LR_ENC_UTF8,NULL,"respond" ); //打印转码后的响应报文 lr_output_message("\nappInfo :%s", lr_eval_string("{respond}"));
- Get请求脚本编写方法,get请求还是比较简单的,只需要套用更改url,基本就能调通了;
/*情报接口*/ web_reg_save_param ("S_respond","LB=","RB=",LAST); //检查点 //web_reg_find("Search=Body","Text=200",LAST); web_add_header("Content-Type","application/json; charset=UTF-8"); lr_start_transaction("intelligences"); web_custom_request("intelligences", "URL={url}/guess-api-gateway/portal/admin/common/intelligences?pageSize=5", "Method=GET", "Resource=0", "Referer=", "Mode=HTTP", "EncType=application/json;charset=UTF-8", "Body=", LAST); lr_end_transaction("intelligences", LR_PASS); //打印返回信息 lr_convert_string_encoding( lr_eval_string("{S_respond}"),LR_ENC_UTF8,NULL,"respond" ); //打印转码后的响应报文 lr_output_message("\nintelligences :%s", lr_eval_string("{respond}"));
另外:使用lr_save_string方法,配置静态变量以及接口请求的字段参数。还可以使用判断语句,来区分读取不同的配置,达到更高的易维护性;
- LoadRunner手动编写接口性能脚本(Post请求)
- Loadrunner Http接口Get/Post方法性能测试脚本解析
- Android HTTP实例 使用GET方法和POST方法发送请求(通过Apache接口实现)
- loadrunner(1)----http POST三种请求格式的脚本
- 【接口测试】:HttpClient Post 和 Get 请求
- LoadRunner手动编写http请求示例(同样试用于TCP及其它的性能测试脚本)
- post和get请求调用Http接口并拿到数据
- HTTP请求接口方法(POST/GET)
- java HttpClient get post请求 调用接口
- 利用HTTPClient模块中HttpGet和HttpPost 发送接口请求
- .NET获取聚合数据接口数据(Http协议POST和GET请求)
- Http的GET请求与POST请求调用接口
- JAVA post和get方式请求远程HTTP接口
- 【性能】Loadrunner(LR)中java协议调用get/post请求,并验证结果脚本
- 在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具
- Loadrunner Webservice接口性能测试脚本编写优化总结
- http请求远程接口获得JSON数据(1) --- 利用HttpURLConnection发送post/get请求
- loadrunner(1)----http POST三种请求格式的脚本
- httpcilent连接第三方接口请求(post,get)
- java HttpUrlConnection get和post 模拟请求 调用接口