Jmeter接口测试响应数据中文显示为Unicode码的解决方法

问题:使用jmeter测试接口,返回响应数据汉字显示为Unicode

Jmeter接口测试响应数据中文显示为Unicode码的解决方法

解决结果:

Jmeter接口测试响应数据中文显示为Unicode码的解决方法

解决过程:
1.修改jmeter配置文件中的默认编码
在Jmeter的安装路径下打开bin文件夹下的jmeter.properties文件,搜索关键词 default.encoding定位到语句【#sampleresult.default.encoding=ISO-8859-1】。
将注释#删掉,并改成utf-8编码,如下:

Jmeter接口测试响应数据中文显示为Unicode码的解决方法

2.添加后置处理器BeanShellPostProcessor和转码代码
添加后置处理器BeanShellPostProcessor,在Script中附上转码代码

Jmeter接口测试响应数据中文显示为Unicode码的解决方法

转码代码如下:

//获取响应代码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="='\\'){" int value="0;" for(int i="0;i<4;i++){" switch(achar){ case'0': case'1': case'2': case'3': case'4': case'5': case'6': case'7': case'8': case'9': <<4)+achar-'0'; break; case'a': case'b': case'c': case'd': case'e': case'f': <<4)+10+achar-'a'; default: throw new illegalargumentexception( "malformed \\uxxxx encoding.");}} outbuffer.append((char) value);}else{ ; else outbuffer.append(achar);}}else outbuffer.append(achar);} prev.setresponsedata(outbuffer.tostring()); < code></len;){>

PS:
1.原理:通过BeanShell内置变量prev,获得响应数据,经过java程序编码,把Unicode代码转成中文,最后修改查看结果树中响应数据为转换完毕的中文
2.在性能试前,请把这个后置处理器删除,不然会大量消耗本机的内存和CPU,影响性能的结果

Original: https://www.cnblogs.com/Dengv5/p/16554231.html
Author: fly龙御沧海
Title: Jmeter接口测试响应数据中文显示为Unicode码的解决方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575458/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球