51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2005|回复: 5
打印 上一主题 下一主题

[原创] jmeter3.0 post body 特有乱码问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-26 14:13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我只是个小白。总结一点自己学习的东西而已。

我用jmeter,在http请求的 Body Data 中写的中文,为什么都是乱码—都是方框中间有个问号。乱码现象如下图:

解决思路

1、检查jmeter.properties文件。发现如下配置:
  1. #JSyntaxTextArea configuration
  2. #jsyntaxtextarea.wrapstyleword=true
  3. #jsyntaxtextarea.linewrap=true
  4. #jsyntaxtextarea.codefolding=true
  5. #Set 0 to disable undo feature in JSyntaxTextArea
  6. #jsyntaxtextarea.maxundos=50
  7. #Change the font on the (JSyntax) Text Areas. (Useful for HiDPI screens)
  8. #jsyntaxtextarea.font.family=Hack
  9. #jsyntaxtextarea.font.size=14
复制代码
2、百度 JSyntaxTextArea + jmeter。搜索结果:
RSyntaxTextArea 是一个支持语法着色的Java 可视化编辑器控件,支持超过20种编程语言。

再回头检查这段配置,“改变字体的文本区域(jsyntax)。(用于HIDPI屏幕)”,顺便有查了下“Hack”是个什么意思—-“Hack字体设计让标准大小的代码能清晰易读,它的特征包括大字高、宽孔径和低对比。”,还有一个我比较感兴趣的解释—“Hack调整了一些容易引起混淆的字符形状,如字母o和数字0,字母l和数字1。

解决方法

尝试把上面配置项的注释,全部取消。重启jmeter,加载脚本。如下图:

于是

jmeter2.13没有这个问题,于是,看了下官网jmeter3.0更新的内容,发现编号为Bug 58933 的bug。这个bug的修复中,提到了

jmeter/trunk/src/core/org/apache/jmeter/gui/util/JSyntaxTextArea.java

文件的源码
  1. private static final boolean WRAP_STYLE_WORD = JMeterUtils.getPropDefault("jsyntaxtextarea.wrapstyleword", true);
  2. private static final boolean LINE_WRAP       = JMeterUtils.getPropDefault("jsyntaxtextarea.linewrap", true);
  3. private static final boolean CODE_FOLDING    = JMeterUtils.getPropDefault("jsyntaxtextarea.codefolding", true);
  4. private static final int MAX_UNDOS           = JMeterUtils.getPropDefault("jsyntaxtextarea.maxundos", 50);
  5. private static final String USER_FONT_FAMILY = JMeterUtils.getPropDefault("jsyntaxtextarea.font.family", JSyntaxTextArea.getDefaultFont().getName());
  6. private static final int USER_FONT_SIZE      = JMeterUtils.getPropDefault("jsyntaxtextarea.font.size", JSyntaxTextArea.getDefaultFont().getSize());
复制代码
font.family获取的是本地默认样式。大概是默认样式,jmeter本身不支持吧。这个地方,把“JSyntaxTextArea.getDefaultFont().getName()” 换成“Hack”,应该就不需要再配置jmeter的参数了

  1. private static final String USER_FONT_FAMILY = JMeterUtils.getPropDefault("jsyntaxtextarea.font.family", "Hack");
复制代码
源码需改成上面的值后,重新编译源码,生效。。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2017-6-26 15:07:05 | 只看该作者
不对的地方,希望指正。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    3#
    发表于 2017-6-26 15:07:29 | 只看该作者
    java gui乱码估计windows上比较多,mac少见
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    1720761397
  • 签到天数: 1 天

    连续签到: 1 天

    4#
    发表于 2017-6-26 15:08:07 | 只看该作者
    按照楼主的方法解决了,感谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-7-12 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2017-6-26 15:09:14 | 只看该作者
    昨天在使用JMeter 3.0 的时候正好遇到这个问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2017-6-26 15:10:25 | 只看该作者
    悠悠小仙仙 发表于 2017-6-26 15:08
    按照楼主的方法解决了,感谢

    能解决问题就好。。。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-14 14:22 , Processed in 0.062065 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表