loadrunner性能测试的时候经常用到事物,通过事物来判断服务器性能,如何才能知道事物是通过的呢?
事物通过和失败的函数分别如下:
lr_end_transaction("事物", LR_PASS); //通过
lr_end_transaction("事物", LR_FAIL); //失败
lr_end_transaction("事物", LR_AUTO); //自动识别通过还是失败
要判断必然会出现判断语法,loadrunner里采用c语言的语法,所以其代码可以这样写
if (表达式) {
lr_end_transaction("事物", LR_PASS);
}
else{
lr_end_transaction("事物", LR_FAIL);
}
接下来的这一步是比较重要的,表达式是什么,我们应该如何去判断事物通过。这里我们使用到一个函数
//根据左右边界截取整个返回值,存在变量result中
web_reg_save_param("result",
"LB={",
"RB=}",
"Search=Body",
LAST);
每一个接口都会有返回值,返回头或者返回的body都可以作为search的范围,这里取Body。返回的结果中如果有“操作成功”则事物通过。我们可以打印出来在后台看,注意这里面返回值带中文需要做特殊处理
/返回值有中文,需要转码,转码后的值存在了msg中
lr_convert_string_encoding(lr_eval_string("{result}"),"utf-8",NULL,"outmsg");
//打印返回值
lr_output_message("转换编码后outmsg----%s",lr_eval_string("{outmsg}"));
n=strlen(lr_eval_string("{outmsg}"));
lr_output_message("%d",n);
这里偷了一下懒,字符截取比较麻烦,所以直接通过返回的字符长度来判断事物是否通过。
全部代码如下:
//根据左右边界截取整个返回值,存在变量result中
web_reg_save_param("result",
"LB={",
"RB=}",
"Search=Body",
LAST);
//访问事物的接口
lr_start_transaction("事物");
web_submit_data("web_submit_data",
"Action=https://www.baidu.hhh.com/api/agggnee/relwulncy/getContactPhoneInfo",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json",
"Referer=",
ITEMDATA,
"Name=caseManageId", "Value={caseManageId}", ENDITEM,
LAST);
//返回值有中文,需要转码,转码后的值存在了msg中
lr_convert_string_encoding(lr_eval_string("{result}"),"utf-8",NULL,"outmsg");
//打印返回值
lr_output_message("转换编码后outmsg----%s",lr_eval_string("{outmsg}"));
n=strlen(lr_eval_string("{outmsg}"));
lr_output_message("%d",n);
if (n==37) {
lr_end_transaction("事物", LR_PASS);
}
else{
lr_end_transaction("事物", LR_FAIL);
}