问题:如果参数化文件的值包含中文,拼到接口请求里发送到服务端,解析会失败。
原因:服务端请求需要做 URLEncode,不能直接拼接中文字符串;
解决方案:LoadRunner 的自带函数 web_convert_param 可以做这种转换;
示例:
lr_convert_string_encoding(lr_eval_string("{city}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString"); //此时city是一个中文城市列表的参数,把它转换为utf-8,存入UnicodeString参数中
lr_save_string (lr_eval_string("{UnicodeString}"),"test" ); //把UnicodeString参数的值又覆盖回test参数,前2步相当于完成了city参数的汉字到utf-8的转换
web_convert_param("test", "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST ); //这一步把city的参数值从utf-8又转换到url编码
你在接口的URL请求里,可以引用这个{test},如下:
city={test} ;
执行之后,在Log里可以看到如下信息:
city=%E5%90%88%E8%82%A5
这样,发送到服务端,就可以被正常解析了。