loadrunner 发送中文参数

   新的项目中,需要向应用发送一个中文的人名:  payerName : 张三,调用失败。,观察错误日志,发现 传过去的payerName是乱码。

   解决过程:

  1. Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8

   重试之,无效。。。

 2. 使用lr_convert_string_encoding函数进行强制转码。

lr_convert_string_encoding: 对中文进行UTF-8转码
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
该函数有4个参数,含义如下:
 sourceString:被转换的源字符串。
fromEncoding:转换前的字符编码。
toEncoding:要转换成为的字符编码。
paramName:转换后的目标字符串。

注意: 使用这个函数转码出来的字符串会以 \x00 结尾,所以要做一次额外处理。

代码如下:

	char tmp[50];
        lr_convert_string_encoding("张三", LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");	
	strcpy(tmp,lr_eval_string("{str}"));
	lr_save_string(tmp,"payerName");


然后再使用 如下方式进行调用:

   	web_custom_request("consume", 
		"URL=http://domain", 
		"Method=POST",
		"Resource=0",
		"RecContentType=application/json",
		"Referer=",
		"Mode=HTTP",
		"EncType=application/json",	
	    "Body={\"{payerName}\"}", 
       	LAST);	


再次运行脚本,OK了。

 

posted on 2013-08-08 16:42  babyblue  阅读(383)  评论(0)    收藏  举报