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

Posted mncasey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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());

 

以上是关于Jmeter后置处理器解析unicode 编码转换的主要内容,如果未能解决你的问题,请参考以下文章

jmeter响应信息unicode 编码转成中文

lxml 解析字符处理规则

Jmeter Web 性能测试入门 :Jmeter 解析 response 并传递 value

Python 编码转换与中文处理

jmeter函数使用以及json格式的后置处理器

Unicode编码和UTF-8编码解析