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

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

解决结果:

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

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

转码代码如下:

 
  1. 复制

  2. //获取响应代码Unicode编码的

  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='\t';

  51. else if(aChar=='r')

  52. aChar='\r';

  53. else if(aChar=='n')

  54. aChar='\n';

  55. else if(aChar=='f')

  56. aChar='\f';

  57. outBuffer.append(aChar);}}else

  58. outBuffer.append(aChar);}

  59. prev.setResponseData(outBuffer.toString());

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

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值