jmeter接口测试-响应结果Unicode转码成中文

一般情况下,接口返回数据都会经过加密,所以有时相应结果会显示为Unicode,因此,需添加BeanShell PostProcessor,加入代码将其转为中文

1.线程中添加BeanShell PostProcessor

2.添加代码    

String s2=new String(prev.getResponseData(),”UTF-8″);

        char aChar;

        int len= s2.length();

        StringBuffer outBuffer=new StringBuffer(len);

        for(int x =0; x <len;){

            aChar= s2.charAt(x++);

            if(aChar==’\\’){

                aChar= s2.charAt(x++);

                if(aChar==’u’){

                    int value =0;

                    for(int i=0;i<4;i++){

                        aChar= s2.charAt(x++);

                        switch(aChar){

                            case’0′:

                            case’1′:

                            case’2′:

                            case’3′:

                            case’4′:

                            case’5′:

                            case’6′:

                            case’7′:

                            case’8′:

                            case’9′:

                                value=(value <<4)+aChar-‘0’;

                                break;

                            case’a’:

                            case’b’:

                            case’c’:

                            case’d’:

                            case’e’:

                            case’f’:

                                value=(value <<4)+10+aChar-‘a’;

                                break;

                            case’A’:

                            case’B’:

                            case’C’:

                            case’D’:

                            case’E’:

                            case’F’:

                                value=(value <<4)+10+aChar-‘A’;

                                break;

                            default:

                                throw new IllegalArgumentException(

                                        “Malformed   \\uxxxx  encoding.”);}}

                    outBuffer.append((char) value);}else{

                    if(aChar==’t’)

                        aChar=’\t’;

                    else if(aChar==’r’)

                    aChar=’\r’;

                    else if(aChar==’n’)

                    aChar=’\n’;

                    else if(aChar==’f’)

                    aChar=’\f’;

                    outBuffer.append(aChar);}}else

                outBuffer.append(aChar);}

        prev.setResponseData(outBuffer.toString());

如图:

版权声明:本文为zy-tester原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zy-tester/p/9593408.html