51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 18531|回复: 10
打印 上一主题 下一主题

[原创] loadrunner 中文乱码的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-7 15:09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用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的内容表示出来呀。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-7 17:05:56 | 只看该作者
在“Tools->Recording Options->Advanced”中选中“Support charset”,再选“UTE-8”,点击“OK”就可以了!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-5-7 17:55:13 | 只看该作者
知道怎么用了,在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, 即可。
嘿嘿,我也是在网上搜到的,不过真的很管用呀。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-5-7 18:04:54 | 只看该作者
不错,我关注这个问题也有一段时间了,终于看到一个能实际解决的方案了。原来改utf8也是没有什么效果。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-5-7 22:24:04 | 只看该作者
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,

直接这样就可以了吧,不用那么多步骤~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-5-9 10:24:22 | 只看该作者
遇到此问题。
选择工具->录制选项->高级->支持字符集,选中utf-8已ok
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-11-25 17:02:55 | 只看该作者

回复 3# 的帖子

按照楼主的解决方案,我已经解决了乱码的问题。谢谢
但是有个小地方需要修改下,我们应该将
将:Name=task.procDefName", "Value=%s", ENDITEM,
改为:Name=task.procDefName", "Value={sorvalue}", ENDITEM, 才可。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-11-25 22:00:48 | 只看该作者
谢谢LZ,刚好现在遇到这个问题了
另外,楼上的一些人请看看仔细,LZ说得是在回放的时候提交表单的数据变成乱码,不是录制。
别想当然地就说了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-8-24 11:26:28 | 只看该作者

URL 中乱码问题???

"Url=images/adv.swf", "Referer=http://192.168.0.104/Securities/admin.php?file=category&action=right&uid=CECF4E475E58461C9F9D5B063FFF141D&grandpa=閺\x80璺ㄧ摜閺備即妞\x88 &father=鐠囦礁?", ENDITEM,

我的问题是:url 中是乱码,其它的地方就不是乱码,请问大家这个问题怎么解决???
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-8-2 12:55:07 | 只看该作者
原帖由 babyfeir 于 2008-11-25 17:02 发表
按照楼主的解决方案,我已经解决了乱码的问题。谢谢
但是有个小地方需要修改下,我们应该将
将:Name=task.procDefName", "Value=%s", ENDITEM,
改为:Name=task.procDefName", "Value={sorvalue}" ...


---这个方法确实可行!顶一把!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2011-9-16 16:02:11 | 只看该作者
赞一个
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 07:43 , Processed in 0.065929 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表