jmeter出现乱码怎么解决

本文是抄袭安大叔的性能    如果想在性能获得更好的发展  请添加公众号:测试那点事  大叔的群号:435092293  大叔曾经担任百度技术总监  很牛逼  相信大叔知道了不会怪我  毕竟我是你的学生

1.加HTTP请求时在Content encoding后填入相应的编码    utf-8

接下来我们来看一下这种方式,可以解决哪些乱码问题

get请求中,参数有中文,我们先不填入任何编码,看下结果会是怎样

 

 

我们发现参数出现了乱码,那么接下来我们制定一下编码:

我们发现不乱码了,那么经过测试此处只要填写时可以显示中文的编码,这个地方就不会乱码,但是我们不要忽略了后台程序的编码,如果后台程序使用的编码和你传入的编码不一致,那么会造成后台程序在接收参数时乱码,此处我将参数直接返回回来,这样我们可以直观的看一下效果。那么我的后台程序的编码为utf-8,我们分别来看一下设置GBK和utf-8这两种方式的结果,如下图所示

我们发现还是乱码,经过测试写啥编码返回结果都是乱码,所以我们可以得到结论Content encoding并不能影响返回结果

2.添加BeanShell Sampler或者BeanShell PostProcessor   在Script处填写如下代码:prev.setDataEncoding("utf-8");

我们看到现在是乱码,接下来我们添加一下BeanShell Sampler在来看一下,注意要在HTTP请求后面添加:

在Script处填写如下代码:prev.setDataEncoding("utf-8");

我们看一下结果

 我们发现乱码好了!!!

总结一下这种方法的优点:灵活,随时修改,重点是不需要重启启动Jmeter。

3.修改Jmeter的配置文件:jmeter.properties

搜索encoding,找到如下这一行代码:

然后把前面的#去掉,后面的编码修改成utf-8,如下图:

 

然后重启Jmeter。

接下来我们访问一下百度看一下效果,我把BeanShell Sampler禁用。

我们发现没有乱码。

我们总结一下这种方式的优点:一次修改,长久使用。

4.有的地方说可以通过添加HTTP信息管理器这种方式修改编码

   在HTTP信息头管理器中添加"Content-Type": "application/json;charset=utf-8"或者"Content-Type":"application/x-www-form-urlencoded;charset=utf-8"来进行修改编码。

首先这种方式只能影响请求的参数,但是经过我的测试无论添加哪种都不起作用,在Jmeter中这个地方只能指定你的参数以哪种形式传递,是Json还是KV形式,对于编码没有作用,在这里我就不给大家进行演示了,大家可以自己进行测试。

5.最后来一种最牛逼的方式解决你的乱码

最后来一中最牛逼的方式,如果以上方式都没有解决你的乱码,那么我们只能去修改Jmeter的源码来解决了,因为jmeter源码字符集不是采用的ISO,这里我们就不做介绍了,感兴趣的同学可以自己尝试一下,这里我已经修改了jmeter源码,并重新打包,大家可以进行下载使用,大家将这里两个jar包下载好后,复制到jmeter的安装目录下的lib/ext下,然后进行替换即可。

链接:https://pan.baidu.com/s/1l344LhC6Ri89r2qQh4N0Iw 密码:fire

 

posted @ 2018-03-06 13:51  taotao12  阅读(275)  评论(0编辑  收藏  举报