[转]Loadrunner中文乱码参数化方法

方法1:

利用Loadrunner提供的转换函数(lr_convert_string_encoding)进行处理,将GBK转换UTF-8参考代码:
lr_convert_string_encoding("中文","GBK","UTF-8","outparam");
由于转换过程中会多出一个 \0 的结束字符,也就是outparam转换后变成了”中文\0”,所以还需要特别进行处理:
lr_save_string(lr_eval_string("{outparam}"),"newparam");
将outparam重新save转存到另一个newparam的参数中,当然也可以保存在原来的outparam参数中进行覆盖,这样才能保证整个转换过程没有纰漏,一些系统对\0比较敏感的时候还可能出现未知的问题。
 

方法2:

针对参数文件的转换
  LoadRunner对于参数化文件,都是统一使用系统默认编码(GBK)进行操作,如果内容中含有中文,就需要每次获取时进行代码转换,这对于一些参数化策略多少会受到一些影响,使用下面的方法,就可以避免这类的问题: 
   假设你的数据文件名称为data.dat,你可以在LoadRunner没有打开参数文件窗口的情况下,使用文本编辑器,打开data.dat,直接将数据文件另存为UTF-8的编码对原来的文件进行覆盖,再回去看下参数文件窗口,虽然显示上都成乱码,但实际使用时的效果惊人,可直接发送UTF-8编码 的中文数据,简单方便,唯一的缺点是只能在脚本外部进行编辑。
 

方法3:

直接发送16进制编码数据,无视任何编码
    假设需要在web_custom_request的body中发送一串json,内容为{"test":123,"name":"名称"} ,json的格式中,中文只能是UTF-8,而如果不是UTF-8编码,情况好点只是乱码,情况差点,可能连带json解析器都会一起报错。
  那么上面的内容我们可以发送什么来代替呢,请看下面的代码:
  {"test":123,"name":"\xE5\x90\x8D\xE7\xA7\xB0"}
  至于中间如何转换的过程,可以参考编码码表,或者通过UTF-8编码获取中文的Hex值,再或者,你会发现实际上这和Urlencode的结果很像。
 
posted @ 2020-06-14 19:50  水世间  阅读(676)  评论(0)    收藏  举报