解决LR回放的response body中文乱码之【lr_convert_string_encoding】函数详解
在实际项目中碰到了请求某地址后,在回放的body中出现了中文乱码如“闅\x90绉\x81澹版\x98?”,导致无法检验返回是否正确,需要将其转换成为可读性的语言,在网上查了一下使用RuntimeSetting中的几项设置后仍不好使,最终通过【lr_convert_string_encoding】函数解决了此问题,下面是实战
【lr_convert_string_encoding】:将回放的body中的中文乱码转换为可读的汉字;
首先要建立关联将需要转码的部分使用左右边界确定scope,然后在请求后添加函数;
函数主体内容包含四个字段,sourceString, fromEncoding,toEncoding, paramName;
四个参数分别对应 :
sourceString:被转换的源字符串
fromEncoding:转换前的字符编码
toEncoding:要转换成为的字符编码
paramName:转换后的目标字符串
语法示例:lr_convert_string_encoding(lr_eval_string("{ct}"),“utf-8”,“gb2312”,“str”);
用法示例:
web_reg_save_param_ex(
"ParamName=ct",
"LB=\"documents\"",
"RB=",
SEARCH_FILTERS,
"Scope=BODY",
LAST);//此函数关联下面请求中的body,将匹配到左右边界的value保存在“ct”参数中,后续在输入被转换的源字符串时使用
web_custom_request("web_custom_request",
"URL=https://www.cnblogs.com",
"Method=GET",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTTP",
"EncType=application/json",
"Body=",
LAST);//请求的主体内容
lr_convert_string_encoding(lr_eval_string("{ct}"),"utf-8","gb2312","str");
//lr_convert_string_encoding(被转换的源字符串),"转换前的字符编码","需要转换成为的目标编码","转换后的目标字符串");
lr_output_message("转换后的body为:%s",lr_eval_string("{str}"));
//打印转换完成后的字符串
转换前的response body
[ {\n "id" : "PS",\n "docTitle" : "闅\x90绉\x81澹版\x98?,\n "revision" : "2.0",\n "country" : "CN"....................省略
使用 lr_convert_string_encoding转换后的response body
[ {\n "id" : "PS",\n "docTitle" : "隐私声明",\n "revision" : "2.0",\n "country" : "CN"....................省略