come from: http://blog.sina.com.cn/s/blog_6cf205160100mdxi.html
昨天在参数化的过程中遇到了中文乱码问题。经过一天的查阅资料在公司李工和“我爱测试”群中点姐的帮助下,顺利搞定这个问题。下面总结一下,分享之。能帮助别人解决问题固然大善,没人看留着自已总结经验也是好的。
1、
昨天录制了系统的新建客户功能。录制完后发现脚本中从界面上输入的中文都是乱码,当时没有在意,自顾自的参数化之然后回放脚本,OK脚本回放成功。然后查询数据库发现数据没有想预期一样插入数据库中。郁闷ing!!!
2、
想起点姐的一句话,脚本回放的result是pass并不一定是真的回放成功。于是开始调试脚本。
首先要添加调试点,定位问题。
分析过程:脚本共分为一下三大块-------登录,新建客户,查询出新建客户。
于是添加文本调试信息,登录成功会进入首页,在首页信息中选择一个字段做标记。方法如下:
同理为新建用户添加文本检查点。
OK!运行脚本!
果然报错,根据文本检查点来看,登录是没有问题的,但是新建失败了,但是传参没有问题。然后我将参数的中文换成英文,没有报错运行成功。于是我感觉到脚本录制的没有问题,问题出在参数上。然后去查看oracle的日志。擦!问题找到了,原来loadrnner传给数据库的参数是乱码,无法写入oracle数据库。问题找到了,让我解决它。
1、
函数如下:
int
SourceString :源字符串。就是本来的字符串
fromEncoding: 从哪个字符集转化。
toEncoding : 到哪个字符集。
ParamName:参数名
OK!,开始转化吧。转化的思路是:
正常的字符--------通过转化函数换成乱码------通过loadrunner出去后又变成了正常的字符。
下面就用我的脚本为例:
我要转化的是客户地址custaddress,我给它赋值:郑州大学(我的母校)。废话不多说直接看代码:
web_custom_request("CustService_7",
Action.c(1161): Notify: Parameter Substitution: parameter "str" =
地址参数化结果str:閮戝窞澶у
Action.c(1162): Notify: Parameter Substitution: parameter "custaddress" =
地址参数化结果custadress:郑州大学
我们分析一下:
1、
3、