JMeter5.2 中文乱码情况之beanshell加密加签后中文乱码

问题描述:HTTP请求的数据中包含中文,在beanshell前置处理器中对请求报文进行加密加签后再发送服务,从服务器的日志中看到中文显示乱码。

JMeter版本为5.2.1

网上资料说Jmeter启动时以gbk编码启动的。所以要更改为UTF-8

jmeter安装目录的bin下找到jmeter.bat

在ARGS前添加 set FILEENCODING=-Dfile.encoding=UTF-8,在set ARGS=  后添加  %FILEENCODING%   保存,并重启jmeter.

 

按照此种方式设置后,问题并没有解决,使用低版本的JMeter(3.0),按照此方法修改,问题得到解决。

于是分析JMeter5.2版本修改配置无效的问题

方式一:

先设置FILEENCODING 变量的值,再添加到ARGS变量后面,通过两个echo输出查看参数设置的值是否如预期,再执行JMeter脚本,发现后台中文解析正常,问题解决。

if not defined FILEENCODING (
    set FILEENCODING=-Dfile.encoding=UTF-8
)

echo   set FILEENCODING = %FILEENCODING%

rem Collect the settings defined above
if not defined JMETER_COMPLETE_ARGS (
    set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %FILEENCODING%
) else (
    set ARGS= 
)

echo set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %FILEENCODING%

方式二:

按照网上写法,直接在ARGS签名set FILEENCODING参数,echo输出,看到参数值也被修改了,但是执行JMeter脚本,后台解析中文还是乱码。问题原因目前不清楚,有明白的大佬请留言指导,谢谢!

rem Collect the settings defined above
if not defined JMETER_COMPLETE_ARGS (
		set FILEENCODING=-Dfile.encoding=UTF-8
    set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %FILEENCODING%
) else (
    set ARGS= 
)

echo set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %FILEENCODING%

备注:调试完后,echo可以去掉或者使用rem替换echo

 

 


版权声明:本文为dewen5790原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。