解决这个问题必须认识到一个事实就是,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) ;
"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);
"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);
3. java协议转码 str2为转换后的
String str1 = "1111哈哈";
String str2 = new String(str1.getBytes("GBK"),"UTF-8");