LOADRUNNER之汉字编码转换及\X00问题

时间:2022-11-20 22:47:59

我们在使用loadrunner做性能测试的时候经常会出现一些URL编码问题,如当参数中存在中文的时候

"Name=user", "Value=孟林", ENDITEM,

抓包的时候可以看到&user=%e5%ad%9f%e6%9e%97,然而我们在loadrunner中的脚本日志会发现并不是这样,其原因是测试脚本中汉字的编码是ACSII而网站中汉字的编码是UTR-8的形式,从而导致了脚本执行的错误。

那出现了这样的问题我们该如何是好呢?

我们可以在loadrunner中使用lr_convert_string_encoding()这个本身自带的函数对汉字的编码进行转换。

//将参数Param中保存的值转换为UTF-8的形式
lr_convert_string_encoding(lr_eval_string("{Param}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8 ,"user");

然而这个时候我们会发现为什么我的参数后面会有一个\x00?

不要惊慌,这个\x00是文字的一个结尾符,我们可以用下面这段代码将其去掉

//因为使用上面的函数转换的时候会再字符串后面加上\x00,所以需要使用以下的代码将其去掉
lr_save_string(lr_eval_string("{user}"),"user");
//进行调用
"Name=user", "Value={user}", ENDITEM,