在loadrunner 12 中,有很多系统其实都录制不了脚本,那么这个时候就需要自己写了.
首先,我们进入登录页面,打开开发者工具,在登录页面输入账号密码,点击登录
如图,这里就可以看到我们的请求方式等一系列参数了.
Payload中记载这我们登录的信息.
然后我们就可以开始写脚本了
web_submit_data("doLogin",
"Action=******/doLogin",
"Method=POST",
"RecContentType=text/html",
"Mode=HTML",
ITEMDATA,
"Name=user_name", "Value=test1", ENDITEM, //这里需要与Plyload一样
"Name=user_pwd", "Value=123456", ENDITEM, //
LAST);
运行试下
这是服务器返回的信息
登录成功,返回了一个token 先不管,我们现在要选择权限了
web_custom_request("userRole",
"URL=*********/loginUserRoles",
"Method=GET",
"Mode=HTML",
LAST);
发现不对,服务器返回登录失败了
这里我们就需要关联token了,token是什么东西呢?
Token是服务端生成的一串字符串,当作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token并将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
在最前面输入关联函数
web_reg_save_param("token",
"LB=TOKEN\":\"",
"RB=\"",
"search=Body",
LAST);
在第一次登录成功时在服务器返回的信息可以看到token,输入他的左边界(LR)和右边界(RB)
然后我们选择权限之前把token添加到header
web_add_auto_header("token", "{token}");
运行一下:
登录成功,虽然乱码了,但这个不是重点.
然后我们选择具体角色,点击后会出现一个新页面
添加上去
web_submit_data("roleId",
"Action=*********/confirmLogin",
"Method=GET",
"Referer=*********/",
"RecContentType=application/json",
"Mode=HTML",
ITEMDATA,
"Name=roleId","Value=9",ENDITEM,
LAST);
运行一下:
登录成功了
需要注意的是 响应头的Content-Type是什么 json和text是有区别的.
text的传值方式如上,json的传值方式则是用body:
web_custom_request("search",
"URL=https://*********/search",
"Method=POST",
"Referer=https://********/",
"EncType=application/json", //指定响应头的Content-Type
"RecContentType=application/json", //指定响应头的Content-Type
"Mode=HTML",
"Body={\"hNodeId\":307,\"riskNm\":\"\",\"notifyStatus\":0,\"riskLevelId\":\"\",\"disposeTmStart\":\"2023-04-01 00:00:00\",\"disposeTmEnd\":\"2023-04-30 00:00:00\",\"pageSize\":10,\"currPage\":1}", //引号需要用\转义
LAST);