jmeter返回结果是乱码及Unicode转中文 1、结果树中有乱码的处理方式 2、结果树中Unicode转中文
到bin目录下面修改jmeter的配置文件
使用jmeter进行压测时,如果响应数据的返回结果有乱码,则修改jmeter.properties文件中的该字段的值改为utf-8,并取消注释(默认是被注释)
修改为
sampleresult.default.encoding=utf-8
修改之后,重启jmeter,执行脚本
2、结果树中Unicode转中文
此方法从网上查询得出,如作者不愿意,联系我删除
添加BeanShell PostProcessor
//获取响应代码Unicode编码的 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=' '; else if(aChar=='r') aChar=' '; else if(aChar=='n') aChar=' '; else if(aChar=='f') aChar='f'; outBuffer.append(aChar);}}else outBuffer.append(aChar);} //-----------------以上内容为转码过程--------------------------- //将转成中文的响应结果在查看结果树中显示 prev.setResponseData(outBuffer.toString());
运行后的结果: