Loadrunner中文乱码应该怎么解决

第一种解决方案:

第一步:去lr 的vugen的Tools -> Recoding Options -> Advanced -> Support charset -> UTF-8 选上。
第二步:设置IE,查看-编码-钩上“自动选择”和Unicode(UTF-8)(我的默认就是,又选了一遍才好的,不然好不了)。
第三步:设置Run-time Settings-Browser-Browser Emulation-Change。具体设置见下图。

LR中文乱码设置

第四步:在lr的测试结果页面里面,什么也不选中,点右键,选择简体中文(因为我的LR的测试页面此时中文变成了乱码)。

第二种解决方案:

在LoadRunner中,为我们提供了一个字符串编码转换的函数lr_convert_string_encoding,用法如下:

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

    该函数有4个参数,含义如下:

    sourceString:被转换的源字符串。

    fromEncoding:转换前的字符编码。

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

    paramName:转换后的目标字符串

    我们需要把字符编码转换为UTF-8格式,因此用法如下:

lr_convert_string_encoding("汽车",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");

这样一来,就成功地完成了字符串的编码转换。此时我们就可以对"汽车"这个参数进行参数化。于是最终的脚本编码看起来像这样:

lr_convert_string_encoding("lr_eval_string("{name}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");

 

示例:

   web_custom_request("CALL-H001I","EncType=text/xml;

charset=UTF-8",        "BodyBinary=<request><meta><verb>CALL</verb><tid>H001I</tid></meta><data><assuid/><assutype>1</assutype><mortkind>04</mortkind><goodsasassuflag>0</goodsasassuflag><assuname>浣忔埧</assuname><papertype>01</papertype>

<paperno>鏆傛棤鍙风爜</paperno><paperrecedate/><papergrantorgan/><turncashabil>1</turncashabil>

<incrensuabil>1</incrensuabil><assuamt>1000000</assuamt>

<otherassuamt>1000000.00</otherassuamt><assuleftamt/><custid>A110102641122043#1</custid><custname>闇嶈景榫"

"""x99"

        "</custname><repaynum>1</repaynum><firstmortrate/><secondmortrate/><mortstate>0</mortstate><note/><housetype>0</housetype><houseframesign/><houseformsign>01</houseformsign><housestylesign/><houseaddr>鍘﹂棬</houseaddr><housearea>100</housearea><compdate/><houseagreno/>

<carmarksign>A1</carmarksign>

<carmodel/><carno/><carengino/><carcolor/><caroutyear/><carrejeyear/>

<bankid>442000050</bankid>

<operid>031</operid></data></request>"r"n" "",

        LAST);

 

使用函数:

char string[5000];

    char tmp[10];

lr_convert_string_encoding(lr_eval_string("{name}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");

//把字符串copy到tmp中。

    strcpy(tmp,lr_eval_string("{str}"));                               sprintf(string,"BodyBinary=<request><meta><verb>CALL</verb><tid>H001I</tid></meta>

<data><assuid/><assutype>1</assutype><mortkind>04</mortkind><goodsasassuflag>0</goodsasassuflag>

<assuname>%s</assuname><papertype>01</papertype><paperno>鏆傛棤鍙风爜</paperno><paperrecedate/><papergrantorgan/><turncashabil>1</turncashabil><incrensuabil>1</incrensuabil><assuamt>1000000</assuamt><otherassuamt>1000000.00</otherassuamt><assuleftamt/><custid>A110102641122043#1</custid><custname>闇嶈景榫""x99</custname><repaynum>1</repaynum><firstmortrate/><secondmortrate/><mortstate>0</mortstate><note/><housetype>0</housetype><houseframesign/><houseformsign>01</houseformsign><housestylesign/><houseaddr>鍘﹂棬</houseaddr><housearea>100</housearea><compdate/><houseagreno/>

<carmarksign>A1</carmarksign><carmodel/>

<carno/><carengino/><carcolor/><caroutyear/><carrejeyear/><bankid>442000050</bankid>

<operid>031</operid>

</data></request>"r"n",tmp);

 

    web_custom_request("CALL-H001I",

        "EncType=text/xml; charset=UTF-8",

        string,

        LAST);

说明:

1. 在树视图里的源码(server Response)的乱码是没法解决的;

2. 在树视图的页面显示可以是正常,源码视图也可以显示正常;

3. 虽然在server Response显示乱码,但查找中文字符串还是正常的。



我的回答