中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中,也会遇到中文乱码问题

接口:http://127.0.0.1:8090/test 这个接口有一个参数name,返回结果就是你传的name,该接口既可以用get请求也可以用post请求。

当响应数据或响应页面没有设置编码时,jmeter会按照jmeter.properties文件中,sampleresult.default.encoding设置的格式解析

默认ISO-8859-1,解析中文肯定出错

  1. # The encoding to be used if none is provided (default ISO-8859-1)
  2. #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:全面的乱码解决方案的更多相关文章

  1. 【工作Vlog】Jmeter响应结果乱码解决方案

    资料:https://blog.51cto.com/ydhome/1864340 方法一:使用后置控制器"Beanshell PostProcessor"(动态修改,灵活) 添加后 ...

  2. JMeter:全面的乱码解决方案【转】

    本文是转自https://www.cnblogs.com/mawenqiangios/p/7918583.html 感谢分享者   中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中, ...

  3. Jmeter 中文乱码解决方案

    中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中,也会遇到中文乱码问题,我查阅网上的资料解决方案都大同小异,而且不够全面或者不够详细,经过潜心研究终有所得,现在我将jmeter乱码解 ...

  4. IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

    IntelliJ IDEA 乱码解决方案 (项目代码.控制台等) 最近IDE从eclipse改成IntelliJ IDEA 了,原因是公司大部分人都在用这个IDE,而且一直推荐用,所以尝尝鲜.换的第一 ...

  5. aspx页面,中文乱码解决方案

    由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...

  6. 【转】Ubuntu乱码解决方案(全)

    转自:http://www.cnblogs.com/end/archive/2011/04/19/2021507.html ubuntu下中文乱码解决方案(全) 1.ibus输入法 Ubuntu 系统 ...

  7. JSP中pageEncoding和charset区别,中文乱码解决方案(转载)

    转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...

  8. boost::xml——基本操作以及中文乱码解决方案 (续)

    本博文主要想说明以下两点: 1.对于上一篇的<boost::xml——基本操作以及中文乱码解决方案>解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题 ...

  9. css中文字体乱码解决方案

    css中文字体乱码解决方案:把css编码和html页面编码统一起来.如果html页面是utf-8.css.js也统一成utf-8编码.还有一个避免中文乱码的办法就是把中文字体写成英文来表示 css中文 ...

  10. 性能测试分享:Jmeter的api监控工具解决方案

    性能测试分享:Jmeter的api监控工具解决方案 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询q ...

随机推荐

  1. 利用 background 和 filter 模糊指定区域

    背景知识:background-size: cover;,background-attachment:fixed;,filter:blur() 难题: 通常,我们会通过filter:blur()去实现 ...

  2. BZOJ2200 道路和航线【好题】【dfs】【最短路】【缩点】

    2200: [Usaco2011 Jan]道路和航线 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1384  Solved: 508[Submit] ...

  3. easyui-datagrid个人实例

    这个实例数据表格的功能,可以实现分页,增删改查功能 1.user.jsp <%@ page language="java" contentType="text/ht ...

  4. POJ_3349_Snowflake Snow Snowflakes

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 43504   Accep ...

  5. PLSQL过程创建和调用

    存储过程 创建过程范例 create or replace procedure pro_kingsql_p1( p_one in varchar2,--可以传入参数 p_two out varchar ...

  6. Kubernetes网络的4种解决方案

    一.Kubernetes + Flannel Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平的网络空间中,这在GCE(Google Compute Engine)里面是现成的 ...

  7. 建立一个更高级别的查询 API:正确使用Django ORM 的方式(转)

    add by zhj: 本文作者是DabApps公司的技术主管,作者认为在view中直接使用Django提供的ORM查询方法是不好的,我对此并不赞同,可能作者 写这篇文章是给Django的初学者看,所 ...

  8. JS模块化编程(二)

    背景 我们常在页面引用js遇到下面情况 <script src="1.js"></script> <script src="2.js&quo ...

  9. 简单利用gulp-babel搭建es6转es5环境

    es6是什么?借着这个话题,我想说:身为web前端的工作者连es6没听说,转行吧. demo的代码如下: 源码下载 或者 gitclone地址: git@git.oschina.net:sisheb/ ...

  10. Git Gui 查看分支历史的时候中文显示乱码

    如图所示 解决方案1 在Git Gui工具栏上选择-编辑-选项: 选择:Default File Contents Encoding, change为UTF-8 成功: 解决方案2  C:\Users ...