产生原因:
Jmeter的结果处理编码与被测试对象的编码不一致。Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文),Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文)。
解决方法一:
使用后置控制器 BeanShell PostProcessor
来动态修改结果处理编码,使之与被测对象保持一致;
优点:灵活,随时修改,不会更改其他请求的结果编码;
缺点:要根据不同的对象设置不同的编码;
适用范围:测试不同的公司项目,有些公司喜欢GBK,有些是UTF-8;
配置方法:
1、确定返回结果的编码(可跟开发人员确认,如果是web页面,可查看源文件得知),下图是在 JMeter 中【查看结果树】监听器中查看;
2、右键 http Sampler,添加 BeanShell PostProcessor
后置处理器;
3、设置 BeanShell PostProcessor
;在Script
中增加 prev.setDataEncoding("UTF-8");
(PS:脚本的符号需使用英文符号)
4、测试验证,OK,设置完毕。
解决办法二:
修改Jmeter的默认编码方式;
优点:一次修改,长久使用;
缺点:如果要测试不同的公司项目,需要多次修改,较麻烦;
适用范围:测试本公司的项目,毕竟同一个公司的项目基本上都是使用同一个编码的;
配置方法:
1、确定返回结果的编码(可跟开发人员确认,如果是web页面,可查看源文件得知);
2、打开 %JMeter_HOME%\bin\jmeter.properties
文件,搜索 default.encoding
,找到 jmeter 的默认编码设置;修改编码与被测系统同样的编码方式,如UTF-8
,去掉“#”(注释符号),保存设置。
3、重启Jmeter验证即可