LoadRunner总结
常见的函数应用场景
参数化关联函数
//根据左右边界获取参数
web_reg_save_param("layerId",
"LB/IC=layerId\":\"",
"RB/IC=\",",
"Ord=1",
"Search=Body",
"RelFrameId=1",
LAST);
//事务相关请求
web_submit_data("deleteLayers",
"Action=http://172.18.80.51/agcim-viewer-mgr-rest/dir/deleteLayers?dirLayerIds=eyJhbGciOiB6QoKK3f7Z8c0OQg",
"Method=POST",
"RecContentType=application/json",
"Snapshot=t40.inf",
"Mode=HTML",
ITEMDATA,
LAST);
//打印获取到的参数
lr_message("layerId== %s",lr_eval_string("{layerId}"));
左右边界中部分字符需要转义
转义 | 字符 |
---|---|
\b | Backspace 键 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\’ | 单引号 |
\” | 双引号 |
\ | 反斜杠 |
\? | 文本问号 |
添加检查点
//检查点应该放在要查找的内容的某个请求之前
web_reg_find(
"Text=在选课前请核对个人信息是否正确",
"SaveCount=Code_Count",
"Search=Body",
LAST );
if (atoi(lr_eval_string("{Code_Count}"))>=1){
lr_output_message("Login successful");
// lr_log_message("登录失败");
lr_end_transaction("login", LR_AUTO);
return 0;
}
else{
lr_error_message("Login failed");
lr_end_transaction("login", LR_FAIL);
return -1;
}
设置事务
//事务开始
lr_start_transaction("删除图层");
//事务相关请求
web_submit_data("deleteLayers",
"Action=http://172.18.80.51/agcim-viewer-mgr-rest/dir/deleteLayers?dirLayerIds={dirLayerId}",
"Method=POST",
"RecContentType=application/json",
"Snapshot=t40.inf",
"Mode=HTML",
ITEMDATA,
LAST);
//事务结束
lr_end_transaction("删除图层", LR_AUTO);
给请求添加header
web_add_auto_header("Authorization","bearer eyJhbGciOiB6QoKK3f7Z8c0OQg");
web_add_auto_header("access_token","eyJhbGciOiB6QoKK3f7Z8c0OQg");
//事务相关请求
web_submit_data("deleteLayers",
"Action=http://172.18.80.51/agcim-viewer-mgr-rest/dir/deleteLayers?dirLayerIds={dirLayerId}",
"Method=POST",
"RecContentType=application/json",
"Snapshot=t40.inf",
"Mode=HTML",
ITEMDATA,
LAST);
回放中文乱码,转码并打印响应
// 获取respones 放在url上面
web_reg_save_param("Response5",
"LB=",
"RB=",
"search=body",
LAST);
//目标请求
web_submit_data("deleteLayers",
"Action=http://172.18.80.51/agcim-viewer-mgr-rest/dir/deleteLayers?dirLayerIds={dirLayerId}",
"Method=POST",
"RecContentType=application/json",
"Snapshot=t40.inf",
"Mode=HTML",
ITEMDATA,
LAST);
lr_end_transaction("删除图层", LR_AUTO);
lr_convert_string_encoding(lr_eval_string("{Response5}"),"utf-8","gb2312","Response5"); // response 结果 转码
lr_error_message("Response5=%s",lr_eval_string("{Response5}")); // 打印response转码后结果
打印相关函数
// 打印参数
lr_output_message("username== %s",lr_eval_string("{NewParam_1}"));
//也可以使用lr_message()函数
lr_message ("username== %s",lr_eval_string("{NewParam_1}"));
//lr_eval_string()方法是取值方法
业务相关说明
行业上的在线用户数与并发用户数经验
电信行业的比例为万分之一,即有1000万用户在线,则并发为1000用户
OA系统的行业比例为在线用户的5%~20%
公司内部系统按经验评估,并发用户一般是在线用户的10%,30000在线,并发一般在3000左右。
关于思考时间
如果是负载测试基本可以忽略思考时间,如果是稳定性测试可以考虑设置思考时间,一般为3-5S
开始执行大量虚拟用户前
应该先用5-10个用户判断基线性能