使用LR进行测试会遇到URL编码的问题。
由于程序处理发送到服务器的表单数据时会按需转码进行发送,比如请求中部分参数做URL编码发送至服务器。
当我们将请求中的值进行参数化并直接使用汉字发送请求就会导致脚本发送的参数不正确。解决办法如下:
代码:
lr_save_string("投资管理","strname");
lr_convert_string_encoding(lr_eval_string("{strname}"),
LR_ENC_SYSTEM_LOCALE,
LR_ENC_UTF8,
"str");
//将strname参数转换为utf-8,存入str参数中
lr_save_string(lr_eval_string("{str}"),"strz");
//str参数的值覆盖strname参数或者存入strz完成由汉字到utf-8的转换
web_convert_param("strz",
"SourceEncoding=HTML",
"TargetEncoding=URL",
LAST);
//将strz参数从utf-8又转换到url编码(URL中用,非URL注释该方法)
日志:
ion.c(4): 通知: 保存参数“strname = 投资管理”。
Action.c(6): 通知: 参数替换:参数“strname”=“投资管理”
Action.c(6): 通知: 保存参数“str = 鎶曡祫绠$悊\x00”。
Action.c(12): 通知: 参数替换:参数“str”=“鎶曡祫绠$悊\x00”
Action.c(12): 通知: 保存参数“strz = 鎶曡祫绠$悊”。
Action.c(70): {"currentpage":0,"sortfield":"totalraisefundrmb","tagname":"%E6%8A%95%E8%B5%84%E7%AE%A1%E7
Action.c(70): %90%86","tagcode":"3A15BDEA0A894A1D9BCC11273662A155","type":30100,"pagesize":20,"sorttype"
Action.c(70): :100200}