某款app,领导要求使用loadrunner对服务端进行压力测试。由于非web页面,无法采取录制方式,尝试手动编写脚本。
1. Loadrunner基础知识
- Lr常用的函数
- Lr定义变量
- Lr参数化
- .....
2. 脚本编写
2.1 定义接口
//定义接口url
char *interface_url;
lr_save_string("http://127.0.0.1","interface_url");
char : 定义一个char类型的变量来存储url
lr_save_string : lr_save_string函数主要是将程序中的常量或变量保存为lr中的参数
2.2 编写事务
从登陆开始吧。
//登录事务
lr_start_transaction("用户登录");
lr_rendezvous("login");
web_custom_request("login",
"Url={interface_url}", //使用{}引用参数
"Method=POST", //HTTP方法:POST 或 GET
"Mode=HTTP", //记录模式:HTML 或 HTTP
"EncType=application/json", //编码类型
"RecContentType=application/json", //内容类型
"Body={\"mobile\":\"13900009999\",\"pwd\":\"123456\"}", //请求body
LAST);
lr_end_transaction("用户登录",LR_AUTO);
Loadrunner中关于http请求的函数很多,常见如
web_url
web_custom_request
web_image
web_add_cookie
web_add_header
web_custom_request
函数允许使用任何方法或主体创建自定义的HTTP请求,其使用范围更广。
其中,Body中,如果是json类型的,引号需要使用 \ 进行转义。其他类型的,直接跟=
后面即可。
2.3 检查响应是否符合预期
通过web_reg_find
,可以验证响应是否符合期望,如通过搜索文本字符串。
web_reg_find("Search=Body",
"Text=user_id",
"SaveCount=userId",
LAST);
-
Search
: 搜索字符串的搜索范围,如ALL、Body、Header -
Text
: 搜索的字符串 -
SaveCount
: 匹配的数量,并存储在一个参数中
2.4 动态数据信息保存到一个参数
//获取用户登录后响应数据user_token,并传给user_token
web_reg_save_param("user_token",
"LB=\"user_token\":\"",
"RB=\"",
"Ord=1",
"Notfound=empty",
"Search=Body",
LAST);
-
LB
参数的左边界 -
RB
参数的右边界 -
Ord
匹配的序号位置,默认为1 -
Notfound
当没有找到边界时的处理选项,选项有:Notfound=error
-
Notfound=empty
-
Search
: 搜索字符串的搜索范围,如ALL、Body、Header
例:(如下json)
{"mobile":"18900001234","password":"123456"}
匹配手机号,那么它的左边界为:\"mobile\":\"
,右边界为:\",\"password
备注: 引号需要用斜杠进行转义
网友评论