JMeter:全面的乱码解决方案
中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中,也会遇到中文乱码问题
接口:http://127.0.0.1:8090/test 这个接口有一个参数name,返回结果就是你传的name,该接口既可以用get请求也可以用post请求。
当响应数据或响应页面没有设置编码时,jmeter会按照jmeter.properties文件中,sampleresult.default.encoding设置的格式解析
默认ISO-8859-1,解析中文肯定出错
- # The encoding to be used if none is provided (default ISO-8859-1)
- #sampleresult.default.encoding=ISO-8859-1
例子:某请求响应数据编码为UTF-8,通过“查看结果树”看到响应数据为乱码;
方案一:直接修改sampleresult.default.encoding=UTF-8。(记住去掉#,不要还是注释状态哦)
方案二:动态修改(这种方法方便些,蜗牛推荐)
step1:指定请求节点下,新建后置控制器"BeanShell PostProcessor"
step2:其脚本框中输入:prev.setDataEncoding("UTF-8");
step3:保存
下面是详细研究过程
添加HTTP请求时在Content encoding后填入相应的编码
接下来我们来看一下这种方式,可以解决哪些乱码问题:
01 get请求中,参数有中文,我们先不填入任何编码,看下结果会是怎样
我们发现中文没有乱码,经过我的测试get请求时Content encoding中填入任何编码或者不填都没有影响,因为都不会乱码。
02
post请求中参数有中文
第一次我们也先不填写编码:
我们发现参数出现了乱码,那么接下来我们制定一下编码:
我们发现不乱码了,那么经过测试此处只要填写时可以显示中文的编码,这个地方就不会乱码,但是我们不要忽略了后台程序的编码,
如果后台程序使用的编码和你传入的编码不一致,那么会造成后台程序在接收参数时乱码,此处我将参数直接返回回来,这样我们可以直观的看一下效果。
那么我的后台程序的编码为utf-8,我们分别来看一下设置GBK和utf-8这两种方式的结果,如下图所示:
03
对返回结果的影响
我们请求一下百度,先不填编码:
我们看一下返回数据,有乱码:
那我们在填写utf-8编码看一下:
我们发现还是乱码,经过测试写啥编码返回结果都是乱码,所以我们可以得到结论Content encoding并不能影响返回结果。
02
添加BeanShell Sampler或者BeanShell PostProcessor
这种方式主要解决响应乱码问题的,我们以BeanShell Sampler为例讲解。
我们先不添加BeanShell Sampler,看看结果如何:
我们看到现在是乱码,接下来我们添加一下BeanShell Sampler在来看一下,注意要在HTTP请求后面添加:
在Script处填写如下代码:prev.setDataEncoding("utf-8");
我们看一下结果:
我们发现乱码好了!!!
总结一下这种方法的优点:灵活,随时修改,重点是不需要重启启动Jmeter。
03
修改Jmeter的配置文件:jmeter.properties
这种方式经过我的测试,只是对响应结果有效果。
找到jmeter安装目录下bin目录下的jmeter.properties文件。
然后搜索encoding,找到如下这一行代码:
然后把前面的#去掉,后面的编码修改成utf-8,如下图:
然后重启Jmeter。
接下来我们访问一下百度看一下效果,我把BeanShell Sampler禁用。
我们发现没有乱码。
我们总结一下这种方式的优点:一次修改,长久使用。
04
有的地方说可以通过添加HTTP信息管理器这种方式修改编码
在HTTP信息头管理器中添加"Content-Type":
"application/json;charset=utf-8"或者"Content-Type":"application/x-www-form-urlencoded;charset=utf-8"来进行修改编码。
首先这种方式只能影响请求的参数,但是经过我的测试无论添加哪种都不起作用,在Jmeter中这个地方只能指定你的参数以哪种形式传递,是Json还是KV形式,对于编码没有作用,在这里我就不给大家进行演示了,大家可以自己进行测试。
05
最后来一种最牛逼的方式解决你的乱码
最后来一中最牛逼的方式,如果以上方式都没有解决你的乱码,那么我们只能去修改Jmeter的源码来解决了,因为jmeter源码字符集不是采用的ISO,这里我们就不做介绍了,感兴趣的同学可以自己尝试一下,这里我已经修改了jmeter源码,并重新打包,复制到jmeter的安装目录下的lib/ext下,然后进行替换即可。
JMeter:全面的乱码解决方案的更多相关文章
- 【工作Vlog】Jmeter响应结果乱码解决方案
资料:https://blog.51cto.com/ydhome/1864340 方法一:使用后置控制器"Beanshell PostProcessor"(动态修改,灵活) 添加后 ...
- JMeter:全面的乱码解决方案【转】
本文是转自https://www.cnblogs.com/mawenqiangios/p/7918583.html 感谢分享者 中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中, ...
- Jmeter 中文乱码解决方案
中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中,也会遇到中文乱码问题,我查阅网上的资料解决方案都大同小异,而且不够全面或者不够详细,经过潜心研究终有所得,现在我将jmeter乱码解 ...
- IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)
IntelliJ IDEA 乱码解决方案 (项目代码.控制台等) 最近IDE从eclipse改成IntelliJ IDEA 了,原因是公司大部分人都在用这个IDE,而且一直推荐用,所以尝尝鲜.换的第一 ...
- aspx页面,中文乱码解决方案
由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...
- 【转】Ubuntu乱码解决方案(全)
转自:http://www.cnblogs.com/end/archive/2011/04/19/2021507.html ubuntu下中文乱码解决方案(全) 1.ibus输入法 Ubuntu 系统 ...
- JSP中pageEncoding和charset区别,中文乱码解决方案(转载)
转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...
- boost::xml——基本操作以及中文乱码解决方案 (续)
本博文主要想说明以下两点: 1.对于上一篇的<boost::xml——基本操作以及中文乱码解决方案>解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题 ...
- css中文字体乱码解决方案
css中文字体乱码解决方案:把css编码和html页面编码统一起来.如果html页面是utf-8.css.js也统一成utf-8编码.还有一个避免中文乱码的办法就是把中文字体写成英文来表示 css中文 ...
- 性能测试分享:Jmeter的api监控工具解决方案
性能测试分享:Jmeter的api监控工具解决方案 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询q ...
随机推荐
- K-means中的K值选择
关于如何选择Kmeans等聚类算法中的聚类中心个数,主要有以下方法(译自维基): 1. 最简单的方法:K≍sqrt(N/2) 2. 拐点法:把聚类结果的F-test值(类间Variance和全局Var ...
- linux写文件,追加内容
覆盖文件 echo "hello" > filename 追加文件 echo "haha" >> filename
- 记一次centos7内核可能意外丢失(测试直接干掉)恢复方法
本次是虚拟机装的centos7的内核不知原因以外丢失造成无法开机,开机显示找不到内核! 恢复方法: 挂载新的ISO文件,然后进入bios选择dvd启动. 启动后进入Troublesshooting,然 ...
- 1.2Tensorflow的Session操作
tf的session #-*- coding: utf-8 -*- # @Time : 2017/12/21 14:56 # @Author : Z # @Email : S # @File : 1. ...
- UVALive 3938 - "Ray, Pass me the dishes!" - [最大连续子列和+线段树]
题目链接:https://cn.vjudge.net/problem/UVALive-3938 参考刘汝佳书上说的: 题意: 给出一个长度为n的序列, 再给出m个询问, 每个询问是在序列 $[a,b] ...
- KMP算法小记
Knuth-Morris-Pratt算法: 转载来自http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_ ...
- HDFS文件上传
下图描述了Client向HDFS上传一个200M大小的日志文件的大致过程: 1)首先,Client发起文件上传请求,即通过RPC与NameNode建立通讯. 2)NameNode与各DataNode使 ...
- 图论最短路——spfa
今天开始图论的最短路的最后复习,今天自己手打spfa虽然看了一眼书,但是也算是自己打出来的,毕竟很久没打了,而且还是一遍a代码下来15min左右就搞完了,成就感++.所以呢来篇博客记录一下. 香甜的黄 ...
- 【Jason】Jason拓展
Java-script是最基础语言(即前端脚本),而jquery是基于javascript封装出来的包,这些包里面含有能调用ajax的方法. ajax是一种异步交互,局部刷新的一种形式,是一种通讯 ...
- LeetCode-104.Maxinum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longe ...