我用loadrunner录制,脚本里的乱码一直没有解决。看到网上很多贴子。 采用的方法:1、第一步:去lr 的vugen的Tools -> Recoding Options -> Advanced -> Support charset -> UTF-8 选上。 2、新建脚本--->选择协议(Http)-->选项-->高级-->选择“支持字符集”并点选“UTF-8”; 在回放脚本之前:Vuser-->运行时设置-->浏览器-->浏览器仿真-->更改-->使用浏览器-->语言下来选择 “中文(中国)”; 3、采用“首先,我们直接用正常的字去参数化,这里只举其中的一个例子来说明,比如<assuname>这个字段,我们用参数值“汽车”直接在脚本中替换“浣忔埧”,脚本回放失败。 然后就想到会不会是所有的中文字段都需要用才行呢?于是把所有的乱码都用简体字替换,脚本回放还是失败。 通过以上的两点试验,说明直接参数化的方法是行不通的,我们必须另找办法。 在LoadRunner中,为我们提供了一个字符串编码转换的函数lr_convert_string_encoding,用法如下:
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);”此贴的办法。 都有没成功。大家有没有相似的问题呀,还有什么别的办法吗。
我根据方法修改的代码如下所示: web_add_header("Content-Type", "text/xml; charset=UTF-8"); lr_convert_string_encoding(lr_eval_string("{NewParam_1}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str"); strcpy(tmp,lr_eval_string("{str}")); lr_log_message("str is %s",tmp);
web_submit_data("longOpenAction!create.ilf", "Action=http://10.19.69.23:7082/intel/longOpenAction!create.ilf?", "Name=ciropenreqs[1].zmRegion", "Value=鏋e簞", ENDITEM, "Name=ciropenreqs[1].zmUsage", "Value=绔\xAF\xE5眬", ENDITEM, "Name=ciropenreqs[1].circuitNumber", "Value=2", ENDITEM, "Name=task.procDefName", "Value=%s", ENDITEM, "Name=task.actCreateTime", "Value=", ENDITEM,
%s是我想要参数化的地方。但结果就成了%s。并没有将NewParam_1的内容代进去。先问各位应该怎么将表示才能将其跟NewParam_1的内容表示出来呀。 |
|
|
|
|
|
|
wangleis18 当前离线
- UID
- 85734
- 帖子
- 16
- 精华
- 0
- 积分
- 145
- 综合技术指数
- 145
- 生活情趣指数
- 0
- 鲜花
- 0
- 鸡蛋
- 0
- 阅读权限
- 10
- 在线时间
- 18 小时
- 注册时间
- 2006-11-1
- 最后登录
- 2012-11-27
 
|
2#
发表于 2008-5-7 17:05 | 只看该作者
在“Tools->Recording Options->Advanced”中选中“Support charset”,再选“UTE-8”,点击“OK”就可以了! |
|
|
|
|
|
|
sj_1625 当前离线
- UID
- 30360
- 帖子
- 81
- 精华
- 0
- 积分
- 181
- 综合技术指数
- 179
- 生活情趣指数
- 2
- 鲜花
- 3
- 鸡蛋
- 0
- 阅读权限
- 10
- 在线时间
- 100 小时
- 注册时间
- 2005-11-1
- 最后登录
- 2013-1-16
 
|
3#
发表于 2008-5-7 17:55 | 只看该作者
知道怎么用了,在lr_convert_string_encoding(lr_eval_string("{NewParam_1}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str"); strcpy(tmp,lr_eval_string("{str}")); lr_log_message("str is %s",tmp); 后面加 lr_save_string(tmp,"sorvalue"); 将:Name=task.procDefName", "Value=%s", ENDITEM, 改为:Name=task.procDefName", "Value=sorvalue", ENDITEM, 即可。 嘿嘿,我也是在网上搜到的,不过真的很管用呀。 |
|
|
|
|
|
|
ebuluo 当前离线
- UID
- 74877
- 帖子
- 306
- 精华
- 0
- 积分
- 218
- 综合技术指数
- 217
- 生活情趣指数
- 1
- 鲜花
- 1
- 鸡蛋
- 0
- 阅读权限
- 10
- 在线时间
- 325 小时
- 注册时间
- 2006-8-25
- 最后登录
- 2013-5-23
 
|
4#
发表于 2008-5-7 18:04 | 只看该作者
不错,我关注这个问题也有一段时间了,终于看到一个能实际解决的方案了。原来改utf8也是没有什么效果。 |
|
我测我测我测测测,思考思考不断的思考!
|
|
|
|
|
demit1 当前离线
- UID
- 80480
- 帖子
- 39
- 精华
- 0
- 积分
- 176
- 综合技术指数
- 176
- 生活情趣指数
- 0
- 鲜花
- 0
- 鸡蛋
- 0
- 阅读权限
- 10
- 在线时间
- 30 小时
- 注册时间
- 2006-9-30
- 最后登录
- 2011-11-8
 
|
5#
发表于 2008-5-7 22:24 | 只看该作者
lr_convert_string_encoding(lr_eval_string("{NewParam_1}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");
web_submit_data("longOpenAction!create.ilf", ...... "Name=task.procDefName", "Value={str}", ENDITEM, "Name=task.actCreateTime", "Value=", ENDITEM,
| |
|