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=‘\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 //-----------------以上内容为转码过程---------------------------
60 //将转成中文的响应结果在查看结果树中显示
61         prev.setResponseData(outBuffer.toString());

原文地址:https://www.cnblogs.com/mncasey/p/10579017.html

时间: 2024-10-03 14:00:33

Jmeter后置处理器解析unicode 编码转换的相关文章

六、Jmeter后置处理器JSON Extractor

一.当接口返回是JSON格式的时候,就可以用JSON Extractor来抓取返回的值,用来关联或者断言. 1.首先,到V2EX中找一个接口,地址为:https://www.v2ex.com/p/7v9TEc53 用一个最新主题的接口: https://www.v2ex.com/api/topics/latest.json Method: GET Authentication: None(没鉴权) 这个接口返回的格式是json格式,直接打开浏览器就可以看到 2.Jmeter中新增接口,运行后在查

Jmeter 后置处理器JSON Extractor 提取json的多个值

json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配,可以一次取多个变量值.$表示响应的根对象.取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始. 示例: 1  找一个响应结果是json格式的,分析响应结果. 比如下面的响应整个是个数组,其中有4个对象.因此取值用$[索引取0-3或*取所有].属性值 如果响应类似{"属性"

jmeter后置处理器,正则表达式提取器的使用

[使用场景]:下一个请求参数需要从上一个请求的响应数据中获取 [jmeter正则表达式说明]:使用perl正则表达式(可参考:http://www.runoob.com/perl/perl-regular-expressions.html) [语法]: () 括起来的部分就是要提取的. .   匹配任何字符串. *  表示任意个字符 + 一次或多次. ? 不要太贪婪,在找到第一个匹配项后停止. \d        数字 \w       数字或者字母 {n}       表示n个字符 {n,m}

Jmeter后置处理器

一.什么是关联? 将请求1的输出 作为 请求2 的输入,则称之为关联 二.通过JSON Path Extrator进行关联 1.添加JSON Path Extractor(需要下载安装插件) 2.设置JSON Path Extractor进行关联 注意:JSONPath Expression中指定要提出参数必须存在(即"用户登录"请求中返回的变量中包含该变量) 3."查询用户信息"请求中需要用到"用户登录"请求返回的token

JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). 此文主要对正则表达式提取器的 正则表达式.模板.匹配数字,三者的关系,做进一步的讲解. 截取商品列表响应结果数据中的一段商品数据如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 {     "s

JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例

上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应结果中的数据呢?此文以获取类目 手机数码-手机通讯-苹果 结果列表中的第一个商品的系统编号为例演示(脚本基于上篇文章,请知悉). 如下为请求响应数据中的部分数据,我们最终要获取的数据为 "sysNo": "2142717" 中的 2142717. 1 2 3 4 5 6

JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇

前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获取的数据,均可看做一个变量(单个数据,此处指所需获取的测试相关数据)或数组(多个数据),通过引用变量或者数组的数据,达到应用其数据的目的.下面针对此两种方式进行介绍. 第一种:单数据变量 但数据变量的应用比较简单,同我们日常 shell 脚本引用变量相同,引用样式:引用名称.例如要引用下图中的变量,

jmeter(五)——后置处理器_JSON提取器

在做接口测试的时候,难免会遇到一个接口的请求参数是另一个接口的响应结果,这个时候就需要用到后置处理器来处理我们的请求参数.后置处理器是处理response信息的元件,JSON提取器是提取以json格式返回的数据. 后置处理器_JSON提取器创建 提取后置处理器需要的字段内容 后置处理器_JSON处理器 原文地址:https://www.cnblogs.com/sunshine-blog/p/12612323.html

第三篇 Postman之 Tests(后置处理器,断言)

第二篇里讲了手动设置全局变量及局部变量的方法,但是这有一个缺点,就是每次测试之前,都需要获取相关变量值,手动再填写更新到对应的全局变量或者局部变量里,这对于想进行自动化执行的人或者懒人就不太友好了,本文将继续解决这个问题,主要还是我太懒了. 还是先抛一个问题: 接口B需要用到接口A返回的报文中的某个字段,具体点,接口B是个列表请求接口,它能正常执行,需要携带接口A登录后返回报文里的token值,怎么通过代码设置的方式实现呢?这就需要用到Tests(后置处理器) Tests--后置处理器功能 Te