相信有不少人在使用 LoadRunner 的过程中都遇到过这样的问题:在录制下来的脚本的中文信息
出现了乱码。关于乱码问题,可能大家在网上也能搜到不少相关的解决办法,我在这里就不多说了,
大家自己去试验一下吧,到底哪个办法有效也就只有谁用谁知道了!我这里只举一个自己遇到的实
际例子来说这个问题,也许不是解决这个问题的唯一办法,但至少也是其中的一个吧。SSSS被测系统
采用 Ajax 技术,通过录制下来的脚本看起来像下面的样子(省略函数其它部分,下同):SSSS
web_custom_request("CALL-H001I",
"EncType=text/xml; charset=UTF-8",
"BodyBinary=CALLH001I1040 浣忔埧 01 鏆傛棤鍙风爜
<PAPERGRantorgan>1110000001000000.00A110102641122043#1 闇嶈景榫""""x99"
"10001 鍘﹂棬 100A1442000050031"r"n" "", LAST);
从上面脚本的黑体部分可以看出,LoadRunner 向服务器提交的请求 body 部分,输入的中文字段
被变成了诸如“浣忔埧”这样的乱码。遇到这样的情况,相信大多数人和我最开始一样,只能不加理会,
直接点击回放,然后我们很高兴地发现,脚本回放成功了!这些乱码是可以被 LR 识别的,而且到
应用系统中查看运行的结果,也没有问题,显示的是正确的中文。但是且慢!先不要高兴得太早,
我们很快就会意识到:如果这个字段我们是需要进行参数化的怎么办?我们应该如何造出这种乱码
的字呢?SSSS
首先,我们直接用正常的字去参数化,这里只举其中的一个例子来说明,比如这个字段,我们用参
数值“汽车”直接在脚本中替换“浣忔埧”,脚本回放失败。然后就想到会不会是所有的中文字段都需要
用才行呢?于是把所有的乱码都用简体字替换,脚本回放还是失败。SS
通过以上的两点试验,说明直接参数化的方法是行不通的,我们必须另找办法。在 LoadRunner
中,为我们提供了一个字符串编码转换的函数 lr_convert_string_encoding,用法如下:SSSSSint
lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding,
评论1