LoadRunner脚本中,接口传参为中文,导致回放报400的问题
以下为报错详细信息:
报400 的原因有很多,这次记录的是有关编码方式的问题
LR对中文的兼容性不算太好,幸而可通过函数来进行转码
以下为修改后成功转码并传参的具体修改方式:
Action()
{
charlist1[50]; //定义变量
lr_convert_string_encoding(lr_eval_string("{shebei}"), //接口1中设备名称进行参数化处理
LR_ENC_SYSTEM_LOCALE, //进行中文转码,LR_ENC_SYSTEM_LOCALE为原编码方式
LR_ENC_UTF8, //LR_ENC_UTF8为目标编码方式
"list"); //保存至list中
strcpy(list1,lr_eval_string("{list}")); //将list的值拷贝到已定义的变量list1中
lr_save_string(list1,"list2"); //再将list1存进list2中,可去掉转码后结尾的\x00
lr_start_transaction("接口1");
web_custom_request("checkNameList",
"URL={str}/selectBaseInfo/checkNameList",
//由于多个环境会用到这个脚本,因而在登录步骤就将域名也作为变量存了起来,方便后期在不同环境中使用时修改脚本域名
"Method=POST",
"Resource=0",
"RecContentType=application/json;",
"Snapshot=t18.inf",
"Mode=HTML",
"EncType=application/json;charset=UTF-8",
"Body=[\"{list2}\",\"{list2}\",\"{list2}\"]",
LAST);
lr_end_transaction("接口1",LR_AUTO);
return0;
}