Jmeter 中文乱码解决方案
中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中,也会遇到中文乱码问题,我查阅网上的资料解决方案都大同小异,而且不够全面或者不够详细,经过潜心研究终有所得,现在我将jmeter乱码解决方案分享给大家。
我已经提前准备好了一个接口:http://127.0.0.1:8090/test 这个接口有一个参数name,返回结果就是你传的name,该接口既可以用get请求也可以用post请求。
01
添加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源码,并重新打包,大家可以进行下载使用,大家将这里两个jar包下载好后,复制到jmeter的安装目录下的lib/ext下,然后进行替换即可。
下载地址喜需要大家关注公众号并回复:“Jmeter乱码”,自动获取jar包地址
下面我们进行访问一下百度进行测试,发现不乱吗,如图:
其实jmeter使用过程中的乱码基本都可以找到源文件改一下源码中的字符集编码来进行解决。
Jmeter 中文乱码解决方案的更多相关文章
- 2019.4.1 JMeter中文乱码解决方案
1)添加一个HTTP信息头管理器:添加Accept:application/xml;application/json;charset=utf-8 2)参数为中文:在HTTP请求时设置编码格式为utf- ...
- aspx页面,中文乱码解决方案
由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...
- JSP中pageEncoding和charset区别,中文乱码解决方案(转载)
转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...
- boost::xml——基本操作以及中文乱码解决方案 (续)
本博文主要想说明以下两点: 1.对于上一篇的<boost::xml——基本操作以及中文乱码解决方案>解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题 ...
- 基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器 ...
- JS传值中文乱码解决方案
JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ...
- Java中文乱码解决方案
Java中文乱码解决方案 1.中文乱码解决方案,确保每个文件的默认编码是UTF-8 加入 URIEncoding="UTF-8" 代码中的设置 1>在se ...
- Eclipse中文乱码解决方案
Eclipse中文乱码解决方案 1)第一个设置:window>perferences>general>workspace>text file encoding 2)Jsp编码问 ...
- (转)JSP HTML JAVASCRIPT 中文乱码 解决方案 大全
JSP HTML JAVASCRIPT 中文乱码 解决方案 大全 JSP的中文字符一直是各位初学者首先要解决的问题,下面进行了总结,也给出了解决办法.C4.1 HTML中文编码转换 在JSP文件中的静 ...
随机推荐
- C# 保留N位小数
1.只要求保留N位不四舍五入 float f = 0.55555f; int i =(int)(f * 100); f = (float)(i*1.0) ...
- Apache httpclient拦截器对请求进行签名
Apahce httpclient 提供HttpRequestInterceptor和HttpResponseInterceptor两种拦截器分别处理请求和响应数据,下面讲一下如何对http请求进行拦 ...
- vuer-cli 安装笔记
电脑上装 的软件全卸载了.需要 重装 .整理了一下vue-cli脚手架搭建 1 先下载git 2 再下载node 3安装淘宝镜像 (https://npm.taobao.org/) 4 安装webpa ...
- NoSQL基础学习
NoSQL基础学习 最近学习的第一个Nosql就是Mongodb,为了了解Nosql的基本知识,特地总结,主要是学习Nosql的理论 一.Introduction(介绍) 它是“ Not Only S ...
- PHP 登陆失效之后,重新登陆,跳转到失效前界面
登陆失效之后,需要重新进行登陆,登陆之后,进入到默认首页,如果需要继续之前的进行操作,必须重新点击菜单进行跳转,体验不太好 登陆的时候,将之前的url,拼接到登陆界面的url上作为一个redirect ...
- JavaScript 的继承与多态
本文先对es6发布之前javascript各种继承实现方式进行深入的分析比较,然后再介绍es6中对类继承的支持以及优缺点讨论.最后介绍了javascript面向对象编程中很少被涉及的“多态”,并提供了 ...
- Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 (转)
阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道 CAS.ReentrantLock.UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍.Jav ...
- 年月日联动select下拉菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 树莓派VNC Viewer 远程桌面配置教程
作为一个刚入门的小白,你还在为如何配置树莓派的远程桌面控制苦恼? 是否希望能够每次在树莓派上无须接上显示器.键盘.鼠标以及走到放置你的树莓派的地方就可以运行指令! 在这篇树莓派文章中,你将学到如何在树 ...
- JAVA对象序列化和反序列化学习
JAVA序列化就是将JAVA对象转化为字节序列的过程,而JAVA反序列化就是将字节序列转化为JAVA对象的过程. 这一过程是通过JAVA虚拟机独立完成,所以一个对象序列化后可以在任意时间和任意机器上反 ...