LoadRunner web請求和響應中文亂碼解決辦法


先來認識下lr_convert_string_encoding:

int lr_convert_string_encoding( const char *sourceString, const char *fromEncoding,const char *toEncoding, const char *paramName);

官方參數解釋:

sourceString:The string to convert

fromEncoding :The encoding of the sourceString

toEncoding:The encoding to convert of the string saved in parameter paramName

paramName:The name of the parameter in which the destination string will be saved

中文參數解釋:

sourceString:被轉換的源字符串。

fromEncoding:轉換前的字符編碼。

toEncoding:要轉換成為的字符編碼。

paramName:轉換后的目標字符串。

常量和值得關系:

Constant

Value

LR_ENC_SYSTEM_LOCALE

NULL

LR_ENC_UTF8

"utf-8"

LR_ENC_UNICODE

"ucs-2"

 

1、request亂碼:將中文消息使用lr_convert_string_encoding先轉碼,再傳入請求參數

注意:請求轉碼函數必須寫在請求函數之前

1 //中文請求參數轉換
2     lr_convert_string_encoding( "我是肖恩",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8, "str" );  
3     lr_save_string(lr_eval_string("{str}"),"strvalue");

2、response亂碼:將響應亂碼lr_convert_string_encoding先轉碼,再輸出(這樣在lr的日志中就能看到正常的中文了)

注意:響應轉換函數必須寫在請求函數之后

1 //響應亂碼轉換
2     lr_convert_string_encoding(lr_eval_string("{value01}"), LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"BM");
3     lr_error_message(lr_eval_string("{BM}"));

兩種完整代碼如下:

 1 web_reg_save_param_ex(
 2         "ParamName=value01",
 3         "LB=,\"msg\":\"",
 4         "RB=,\"data",
 5         SEARCH_FILTERS,
 6         LAST);
 7     //中文請求參數轉換
 8     lr_convert_string_encoding( "我是肖恩",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8, "str" );  
 9     lr_save_string(lr_eval_string("{str}"),"strvalue");
10     //下訂單
11     web_custom_request("下訂單",
12         "URL=http://192.168.145.130:8080/mobile/api/order/addorder",
13         "Method=POST",
14         "TargetFrame=",
15         "Resource=0",
16         "Referer=",
17         "Mode=HTML",
18         "EncType=application/json",
19         "Body={\"token\":\"{get_token}\",\"getAddrId\":1,\"getCarId\":23,\"payType\":2,\"remark\":\"{strvalue}\",\"price\":1,\"orders\":[{\"getTime\":\"1450921104000\",\"goodss\":[{\"goodsId\":93,\"count\":1},{\"goodsId\":96,\"count\":1}]}],\"invoiceTitle\":\"fapiao\"}",
20         LAST);
21     //響應亂碼轉換
22     lr_convert_string_encoding(lr_eval_string("{value01}"), LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"BM");
23     lr_error_message(lr_eval_string("{BM}"));

 

3、lr里面亂碼設置:(此方法不一定能解決響應亂碼問題,但是大部分都可以解決)

 

小白記錄~~ 歡迎評論留言~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM