首页
学习
活动
专区
工具
TVP
发布

LoadRunner手动编写接口性能脚本,Post请求

前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接口的目的;

loadrunner默认的脚本是C语言的,百度之后发现其实它支持目前所有主流的语言,如:Java User、VB User、VB script User 、Javascript User等。

前方高能!!!!一大批代码到来!!非战斗人员请快速撤离!!!

下面是尝试过的几种post接口的请求方式:

Action()

{

//参数化;

lr_save_string("Android", "platform");

lr_save_string("a8ika09", "deviceId");

lr_save_string("150173375600", "timestamp");

lr_save_string("official", "memberChannel");

lr_save_string("v1.0.0", "version");

//保存下面接口返回的参数;

web_reg_save_param ("S_respond","LB=","RB=",LAST);

//获取appKey并保存为参数变量

web_reg_save_param ("appKey","LB=appKey","RB=}",LAST);

web_reg_save_param("Connection","LB=Connection","RB=X",LAST);

//获取headers参数

web_save_header(REQUEST, "RequestHeader");// REQUEST为内置变量,保存请求的头信息,需在发送URL请求前注册使用,将请求头信息存入字符串RequestHeader中

web_save_header(RESPONSE, "ResponseHeader");// 将RESPONSE保存响应的头信息在字符串ResponseHeader中

web_add_header("Content-Type","application/json; charset=UTF-8");

lr_start_transaction("GetAPPKey");

web_custom_request("app-keys",

"URL=http://14.119.110.171/cbclient/app-keys",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Resource=0",

"Referer=",

"Mode=HTML",//HTML或者HTTP都可以

//"EncType=application/x-www-form-urlencoded", //编码类型

//"EncType=application/json", //指定响应头的Content-Type,这里是JSON

//"RecContentType=application/json", //指定请求头的Content-Type,这里是JSON

//"Snapshot=t10.inf",

"Body={"

"\"requestId\":\"\","

"\"platform\":\"\","

"\"deviceId\":\"\","

"\"timestamp\":\"\","

"\"memberChannel\":\"\","

"\"version\":\"\""

"}",

//"Body=&requestId=aimaii1212u19283nfna&platform=Android&deviceId=a8ika09109&timestamp=8291377319798173&memberChannel=official&version=v1.0",此传参方法不work。

LAST);

lr_end_transaction("GetAPPKey", LR_AUTO);

//web_find ("Text=\"ret\":true",LAST);

//对响应报文进行转码

lr_convert_string_encoding ( lr_eval_string (""),LR_ENC_UTF8 ,NULL,"respond");

//打印转码后的响应报文

lr_output_message ( "all respond is %s",lr_eval_string (""));

lr_output_message ( "HEANDER IS %s",lr_eval_string (""));

lr_output_message ( "HEANDER IS %s",lr_eval_string (""));

lr_output_message ( "\n\nConnection IS %s",lr_eval_string (""));

lr_start_transaction("login");

web_reg_save_param ("S_respond","LB=","RB=",LAST);

web_add_header("Content-Type","application/json; charset=UTF-8");

web_custom_request("login",

"URL=http://14.119.110.171/cbclient/user/login/mobile",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Resource=0",

"Referer=",

"Mode=HTML",//HTML或者HTTP都可以

//"EncType=application/x-www-form-urlencoded", //编码类型

//"EncType=application/json", //指定响应头的Content-Type,这里是JSON

//"RecContentType=application/json", //指定请求头的Content-Type,这里是JSON

//"Snapshot=t10.inf",

"Body={"

"\"requestId\":\"\","

"\"platform\":\"\","

"\"deviceId\":\"\","

"\"timestamp\":\"\","

"\"memberChannel\":\"\","

"\"version\":\"\","

"\"appKey\":\"\","

"\"sign\":\"1234\","

"\"data\":{\"mobile\":\"\",\"password\":\"123456\"}"

"}",

LAST);

lr_convert_string_encoding ( lr_eval_string (""),LR_ENC_UTF8 ,NULL,"respond");

//打印转码后的响应报文

lr_output_message ( "%s",lr_eval_string (""));

lr_log_message("\n\requestId is :%s",lr_eval_string(""));

lr_output_message ( "appKey is %s",lr_eval_string (""));

lr_end_transaction("login", LR_AUTO);

/*

lr_start_transaction("query");

web_reg_save_param ("S_respond","LB=","RB=",LAST);

web_add_header("Content-Type","application/json; charset=UTF-8");

web_custom_request("query",

"URL=http://14.119.110.171/cbclient/",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Resource=0",

"Referer=",

"Mode=HTML",//HTML或者HTTP都可以

//"EncType=application/x-www-form-urlencoded", //编码类型

//"EncType=application/json", //指定响应头的Content-Type,这里是JSON

//"RecContentType=application/json", //指定请求头的Content-Type,这里是JSON

//"Snapshot=t10.inf",

"Body={"

"\"requestId\":\"\","

"\"platform\":\"\","

"\"deviceId\":\"\","

"\"timestamp\":\"\","

"\"memberChannel\":\"\","

"\"version\":\"\","

"\"appKey\":\"\","

"\"sign\":\"1234\","

"\"accessToken\":\"\"

"}",

LAST);

lr_convert_string_encoding ( lr_eval_string (""),LR_ENC_UTF8 ,NULL,"respond");

//打印转码后的响应报文

lr_output_message ( "%s",lr_eval_string (""));

lr_log_message("\n\nusername is :%s",lr_eval_string(""));

lr_end_transaction("query", LR_AUTO);

*/

return 0;

}

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307A0WOI300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券