解决这个问题必须认识到一个事实就是,loadrunner
和测试
服务器交换数据使用的是utf8格式,但是展现在replaylog中是使用gb2312格式,而且在脚本中如何使用web_reg_find的时候也是使用的是gb2312格式,所以知道这个原理后,事情就好办多了。
首先使用关联函数web_reg_save_param将服务器返回的Server Response 内容保存为参数,接着利用 lr_convert_string_encoding函数进行编码格式转换即可。
此时注意---关联函数是一个注册型函数,需要告诉VuGen下一个请求返回是需要被处理的,因此该函数必须写在请求之前,否则就会出现无法获得关联结果的错误。
1.获取测试服务器提供的utf8格式的文字并且转换成gb2312格式展现出来
web_reg_save_param_ex(
"ParamName=aa",
"LB=ProductName",
"RB=ProductBriefName",
"NotFound=warning",
SEARCH_FILTERS,
LAST) ;
web_url("web_url",
"URL=http://124.238.214.65:70/Scripts/Home/HomeHotProduct.js",
"TargetFrame=",
"Resource=0",
"Referer=",
LAST);
lr_convert_string_encoding(lr_eval_string("{aa}"),"utf-8","gb2312","str");
"ParamName=aa",
"LB=ProductName",
"RB=ProductBriefName",
"NotFound=warning",
SEARCH_FILTERS,
LAST) ;
web_url("web_url",
"URL=http://124.238.214.65:70/Scripts/Home/HomeHotProduct.js",
"TargetFrame=",
"Resource=0",
"Referer=",
LAST);
lr_convert_string_encoding(lr_eval_string("{aa}"),"utf-8","gb2312","str");
lr_output_message(lr_eval_string("{str}"));
2.本地的gb2312的中文经过转换成utf8发给测试服务器
lr_convert_string_encoding(lr_eval_string("智能手机 "),"gb2312","utf-8","a1");
web_reg_save_param_ex(
"ParamName=aa",
"LB={a1}",
"RB=",
"NotFound=error",
SEARCH_FILTERS,
LAST);
web_url("IndexCategoryProductJson.js",
"URL=http://124.238.214.65:70/Scripts/Home/IndexCategoryProductJson.js",
"Resource=1",
"RecContentType=application/x-javascript",
"Referer=http://124.238.214.65:8081/",
"Snapshot=t24.inf",
LAST);
"ParamName=aa",
"LB={a1}",
"RB=",
"NotFound=error",
SEARCH_FILTERS,
LAST);
web_url("IndexCategoryProductJson.js",
"URL=http://124.238.214.65:70/Scripts/Home/IndexCategoryProductJson.js",
"Resource=1",
"RecContentType=application/x-javascript",
"Referer=http://124.238.214.65:8081/",
"Snapshot=t24.inf",
LAST);
本文介绍如何在LoadRunner中处理UTF-8与GB2312之间的编码转换问题,通过具体示例展示了如何使用web_reg_save_param及lr_convert_string_encoding函数实现服务器返回数据和本地数据的正确显示。
8735

被折叠的 条评论
为什么被折叠?



