• Jmeter后置处理器解析unicode 编码转换


    使用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());
  • 相关阅读:
    各种排序算法的时间复杂度和空间复杂度
    fork/join框架
    全文检索之solr学习
    【设计模式最终总结】概述、分类、原则
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
    下拉列表自己封装的
    下拉列表
    一个原生的JavaScript拖动方法
    JavaScript的jsonp
    angular2 的依赖注入
  • 原文地址:https://www.cnblogs.com/mncasey/p/10579017.html
Copyright © 2020-2023  润新知