分享

loadrunner 发送中文参数

 昵称13876790 2015-01-27
             
                 新的项目中,需要向应用发送一个中文的人名: payerName : 张三,调用失败。,观察错误日志,发现 传过去的payerName是乱码。 解决过程:
             

         


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



  解决过程:



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



  重试之,无效。。。



  2. 使用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个参数,含义如下:



  sourceString:被转换的源字符串。



  fromEncoding:转换前的字符编码。



  toEncoding:要转换成为的字符编码。



  paramName:转换后的目标字符串。



  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 结尾,所以要做一次额外处理。



  代码如下:



  [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=http://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=http://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了。



          

原文转自:http://blog.csdn.net/on_my_way20xx/article/details/9838163


          

 



          
         

           

                 
               

         

        
         

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多