运用LoadRunner进行HTTP接口自动化测试
Action()
{
//存储测试结果状态
char V_testStatus[1024];
//定义预期值与实际值的比较结果
int result;
//取得登录名
char *V_UserName=lr_eval_string("{UserName}");
//获取服务器还回的请求状态state
web_reg_save_param_ex(
"ParamName=sucStatusParam",
"LB=\"state\":",
"RB=,",
"NOTFOUND=warning",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/MiddleWare/*",
LAST);
//发送请求
web_custom_request("login",
"URL=http://{IP}/MiddleWare/mem/login?",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTTP",
//"EncType=application/json",
"Body=params={\"param\":{\"userAccount\":\"{UserName}\",\"passWord\":\"e10adc3949ba59abbe56e057f20f883e\",\"device\":\"IOS\"},\"version\":\"v1.0\",\"loginLog\":\"2015-09-11 09:09:09\"}",
LAST);
//比较预期值和实际值是否相等
result=strcmp(lr_eval_string("{YQJG}"),lr_eval_string("{sucStatusParam}"));
if(result==0){
strcpy(V_testStatus,"PASS");
}else{
strcpy(V_testStatus,"FAIL");
}
strcpy(V_Result,"<tr>");
//写入接口名称
strcat(V_Result,"<td id='interFaceName'>");
strcat(V_Result,lr_eval_string("{IFaceName}"));
strcat(V_Result,"</td>");
//写入测试参数
strcat(V_Result,"<td id='uname'>");
strcat(V_Result,V_UserName);
strcat(V_Result,"</td>");
//写入预期结果
strcat(V_Result,"<td id='expected'>");
strcat(V_Result,lr_eval_string("{YQJG}"));
strcat(V_Result,"</td>");
//写入实际结果
strcat(V_Result,"<td id='reality'>");
strcat(V_Result,lr_eval_string("{sucStatusParam}"));
strcat(V_Result,"</td>");
//写入测试状态
strcat(V_Result,"<td id='status'>");
strcat(V_Result,V_testStatus);
strcat(V_Result,"</td></tr>");
fputs(V_Result,file_stream);
return 0;
}