Jmeter-响应结果unicode转成中文显示
本文为转载微信公众号文章,如作者发现后不愿意,请联系我进行删除
原文链接:http://mp.weixin.qq.com/s?__biz=MjM5OTI2MTQ3OA==&mid=2652178311&idx=1&sn=9ac05bc08e688018b9df1681d17fdc43&chksm=bcdf83ce8ba80ad8177307c44f74d4acc5d5e247af69894986b2d3c72e1847cebee6117c4d4e&scene=0#rd
在jmeter工具的使用中,不管是测试接口还是调试性能时,查看结果树必不可少,然而在查看响应数据时,其中的中文经常以Unicode的编码形式显示,如图1。这样不能直接查看到对应的中文是否为期望的结果,很不方便。

我找到一个曲线救国的方法,供大家参考。得到结果,如图2。

操作步骤
第一步
在对应请求上添加后置处理器BeanShellPostProcessor,如图3.

得到页面,图4。
图4
第二步
在后置处理器BeanShellPostProcessor的script中贴入Unicode的转中文的编码,如图5。

代码如下:
//获取响应代码Unicode编码的
String s2=newString(prev.getResponseData(),"UTF-8");
//---------------一下步骤为转码过程---------------
charaChar;
intlen= s2.length();
StringBufferoutBuffer=newStringBuffer(len);
for(int x =0; x <len;){
aChar= s2.charAt(x++);
if(aChar=='\\'){
aChar= s2.charAt(x++);
if(aChar=='u'){
int value =0;
for(inti=0;i<4;i++){
aChar= s2.charAt(x++);
switch(aChar){
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
value=(value <<4)+aChar-'0';
break;
case'a':
case'b':
case'c':
case'd':
case'e':
case'f':
value=(value <<4)+10+aChar-'a';
break;
case'A':
case'B':
case'C':
case'D':
case'E':
case'F':
value=(value <<4)+10+aChar-'A';
break;
default:
thrownewIllegalArgumentException(
"Malformed \\uxxxx encoding.");}}
outBuffer.append((char) value);}else{
if(aChar=='t')
aChar='\t';
elseif(aChar=='r')
aChar='\r';
elseif(aChar=='n')
aChar='\n';
elseif(aChar=='f')
aChar='\f';
outBuffer.append(aChar);}}else
outBuffer.append(aChar);}
//-----------------以上内容为转码过程---------------------------
//将转成中文的响应结果在查看结果树中显示
prev.setResponseData(outBuffer.toString());
第三步
正常调试并查看结果树,发现之前的Unicode的编码的中文,已经转码完毕。
<End>
原理
通过BeanShell内置变量prev,获得响应数据,经过java程序编码,把Unicode代码转成中文,最后修改查看结果树中响应数据为转换完毕的中文数据。
备注
1、 在性能测试前,请把这个后置处理器删除,不然会大量消耗本机的内存和CPU,影响性能的结果
2、 以上代码中的转码过程可以更改为更适合的代码,但要注意的是Jmeter3.0这个版本依旧对Integer.parseint()方法不能很好支持,运行会报错。
3、 关于获取响应结果的变量值prev,具体API查看:
http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
Jmeter-响应结果unicode转成中文显示的更多相关文章
- Python将list中的unicode转换成中文显示
有这样一个列表: list = [{'channel_id': -3, 'name': u'\u7ea2\u5fc3\u5146\u8d6b'}, {u'seq_id': 0, u'name_en': ...
- jmeter响应信息unicode 编码转成中文
在jmeter 发送请求过程中,有时候后台返回的是unicode 代码,如: {"status":-1,"msg":"\u63d0\u4ea4\u65 ...
- JAVA unicode转换成中文
/** * * unicode 转换成 中文 * @param theString * @return */ public static String decodeUnicode(String the ...
- unicode 转换成中文
unicode 转换成中文 + (NSString *)replaceUnicode:(NSString *)unicodeStr { NSString *tempStr1 = [unicodeStr ...
- jmeter设置成中文显示
meter默认语言设置: 1.临时设置: 进入options -- Choose Language -- 选择中文简体,设置后语言切换成中文,重启失效 2.永久设置:进入jmeter目录下的bin目录 ...
- Python 读取文件中unicode编码转成中文显示问题
Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...
- jmeter返回的Unicode转换成utf8
该问题通过查找资料借鉴前辈门的经验得到了解决,记录下来是为了后面能够用到 最近发现有些接口返回的时unicode类型的,如下图所示: 因此只需要在jmeter中添加后置处理器:BeanShell Po ...
- jmeter响应数据Unicode编码转换为汉字
2018-07-09 10:24:34 每次用jmeter做接口测试时,响应信息中文总是显示Unicode编码格式,每次都要在网上寻找这一段转换的代码,但是我发现在网上找这段代码有点麻烦,像我 ...
- 【J-meter】参数及相应数据中文显示乱码问题
参考资料: http://www.51testing.com/html/00/130600-1360743.html http://www.cnblogs.com/fengpingfan/p/5851 ...
随机推荐
- AngularJS中的http服务的简单用法
我们可以使用内置的$http服务直接同外部进行通信.$http服务只是简单的封装了浏览器原生的XMLHttpRequest对象. 1.链式调用 $http服务是只能接受一个参数的函数,这个参数是一个对 ...
- java中内部类的讲解
java中有一个内部类的概念,由于之前一直比较忙,没有单独拿出时间总结一下,今天我就把内部类的相关知识进行一下汇总,如果有不足之处,欢迎批评指正. 1)java内部类的概念. 在一个类的的 ...
- iOS下拉图片放大
效果图 开始简单的代码过程 其实思路很简单 就是 让tableView偏移 一图片的高度,然后在把图片添加到tableView中,然后再监听didScrollView,在里面改变图片的frame - ...
- 将本地代码上传至github
注册github账号 https://github.com/ 安装git工具 https://git-for-windows.github.io 1.在github中创建一个项目 2.填写相应信息,点 ...
- ffmpeg添加水印的方法举例 (砖)
网上大部分关于ffmpeg加视频水印的方法还是使用vhook,在现在的ffmpeg中已经不推荐使用,但是也能编译,也能使用,至于效果,一会再说.现在的ffmpeg推荐使用的是libavfilter,但 ...
- 【259】ucpole.dat update
2017年2月21日 57871 +0.020896 0.007232 +0.414732 0.009212 +0.418044 0.007533 p 57872 +0.022055 0.007284 ...
- python 爬虫 下载图片
import os#导入操作系统模块from urllib.request import urlretrieve#下载url对应的文件from urllib.request import urlope ...
- 外部访问docker内部容器centos的http服务
1.创建容器 docker run -d -it -h dd -p --name bbbbb centos dd 是用户名 --name 后面是容器名字 2.在我们开始安装Nginx及其他所需软件之前 ...
- C++用指针变量作为函数的参数接受数组的值的问题的总结
实参和形参的四种结合方式 实参 形参 实例 数组名 数组名 1.1 数组名 指针变量 1.2 指针变量 数组名 1.3 指针变量 指针变量 1.4 本文以输入10个整数,然后对其进行排序,然后输出的程 ...
- IFC数据模式架构的四个概念层详解说明
IFC模型体系结构由四个层次构成,从下到上依次是 资源层(Resource Layer).核心层(Core Layer).交互层(Interoperability Layer).领域层(Domain ...