使用Jmeter过程中发现,从查看结果树看到部分内容需要decode,此处参考曲线救国的方法。
步骤:
添加后置处理器-BeanShell PostProcessor
在scripts处添加相关代码,之后执行即可
1 //获取响应代码Unicode编码的 2 3 String s2=new String(prev.getResponseData(),"UTF-8"); 4 //---------------以下步骤为转码过程--------------- 5 char aChar; 6 int len= s2.length(); 7 StringBuffer outBuffer=new StringBuffer(len); 8 for(int x =0; x <len;){ 9 aChar= s2.charAt(x++); 10 if(aChar=='\'){ 11 aChar= s2.charAt(x++); 12 if(aChar=='u'){ 13 int value =0; 14 for(int i=0;i<4;i++){ 15 aChar= s2.charAt(x++); 16 switch(aChar){ 17 case'0': 18 case'1': 19 case'2': 20 case'3': 21 case'4': 22 case'5': 23 case'6': 24 case'7': 25 case'8': 26 case'9': 27 value=(value <<4)+aChar-'0'; 28 break; 29 case'a': 30 case'b': 31 case'c': 32 case'd': 33 case'e': 34 case'f': 35 value=(value <<4)+10+aChar-'a'; 36 break; 37 case'A': 38 case'B': 39 case'C': 40 case'D': 41 case'E': 42 case'F': 43 value=(value <<4)+10+aChar-'A'; 44 break; 45 default: 46 throw new IllegalArgumentException( 47 "Malformed \uxxxx encoding.");}} 48 outBuffer.append((char) value);}else{ 49 if(aChar=='t') 50 aChar=' '; 51 else if(aChar=='r') 52 aChar=' '; 53 else if(aChar=='n') 54 aChar=' '; 55 else if(aChar=='f') 56 aChar='f'; 57 outBuffer.append(aChar);}}else 58 outBuffer.append(aChar);} 59 //-----------------以上内容为转码过程--------------------------- 60 //将转成中文的响应结果在查看结果树中显示 61 prev.setResponseData(outBuffer.toString());