zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    剑指offer——最小的K个数和数组中第K大的元素
    Leetcode刷题指南链接整理
    160. Intersection of Two Linked Lists
    100. Same Tree
    92. Reverse Linked List II
    94. Binary Tree Inorder Traversal
    79. Word Search
    78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
    0x16 Tire之最大的异或对
    0x16 Tire
  • 原文地址:https://www.cnblogs.com/xuzhongtao/p/8513980.html
Copyright © 2011-2022 走看看