轉帖|使用教程|編輯:龔雪|2014-03-28 09:57:07.000|閱讀 937 次
概述:本方案詳細的描述Loadrunner測試中文參數的解決過程。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Loadrunner測試中,有的應用需要發送中文。本案例(以人名payerName : 張三)進行實例解釋和處理。
發現調用失敗。通過觀察錯誤日志,發現傳過去的payerName是亂碼。
解決過程:
首先,Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8重試之,無效。
然后,使用lr_convert_string_encoding函數進行強制轉碼。
[cpp] view plaincopyprint?
lr_convert_string_encoding: 對中文進行UTF-8轉碼
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName):該函數有4個參數,含義如下:
注意: 使用這個函數轉碼出來的字符串會以 \x00 結尾,所以要做一次額外處理。
代碼如下:
[cpp] view plaincopyprint? 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"); 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"); 然后再使用 如下方式進行調用: [cpp] view plaincopyprint? web_custom_request("consume", "URL=//192.168.12.89:8010/quickpay/v10/003", "Method=POST", "Resource=0", "RecContentType=application/json", "Referer=", "Mode=HTTP", "EncType=application/json", "Body={\"cardHolderName\":\"{payerName}\",\"cardNo\":\"4392260802828457\",\"cardTypeEnum\":\"CREDI\"}", LAST); web_custom_request("consume", "URL=//192.168.12.89:8010/quickpay/v10/003", "Method=POST", "Resource=0", "RecContentType=application/json", "Referer=", "Mode=HTTP", "EncType=application/json", "Body={\"cardHolderName\":\"{payerName}\",\"cardNo\":\"4392260802828457\",\"cardTypeEnum\":\"CREDI\"}", LAST);
再次運行腳本,OK了。希望對需要測試中文參數的朋友有所幫助。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn