1. 程式人生 > >JMeter處理返回結果unicode轉碼為中文

JMeter處理返回結果unicode轉碼為中文

第一步:修改Jmeter根目錄下的jmeter.properties檔案,把編碼格式改為utf-8   

  在bin目錄下;查詢到欄位:csvdataset.file.encoding_list=UTF-8|UTF-16|ISO-8859-15|US-ASCII       

第二步:在請求下新增BeanShell PostProcessor(下圖),並加入程式碼,

  String s=new String(prev.getResponseData(),"UTF-8");        char aChar;        int len= s.length();        StringBuffer outBuffer=new StringBuffer(len);        for(int x =0; x <len;){            aChar= s.charAt(x++);            if(aChar=='\\'){                aChar= s.charAt(x++);                if(aChar=='u'){                    int value =0;                    for(int i=0;i<4;i++){                        aChar= s.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());