Jmeter的Response Body中返回乱码/问号,当所有的方法都试了还是不行,可以尝试下面的方法
在上一回使用jmeter的csv配置参数模拟多人登录中遇到的问题:
csv文件中或者请求接口的body中包含中文,在结果返回Response Body的中文显示为“???”,
如下图:
情况一:
情况二:
通过百度尝试了以下几种解决乱码的方法:
第一种方法,修改配置文件jmeter.properties的sampleresult.default.encoding
1、在jmeter的安装路径apache-jmeter-4.0\bin下;
2、打开jmeter.properties的文件;
3、sampleresult.default.encoding=UTF-8,去掉注释符#;
4、保存文件,重启jmeter
第二种方法,修改配置文件:jmeter.properties的jsyntaxtextarea.font.family
1、在jmeter的安装路径apache-jmeter-4.0\bin下;
2、打开jmeter.properties的文件;
3、jsyntaxtextarea.font.family=Hack,去掉注释符#;
4、 保存文件,重启jmeter
第三种方法,请求接口的Content encoding
修改每个请求的Content encoding为“UTF-8”,不需要重启jmeter
第四种方法,添加beanShell PostProcessor
输入脚本:prev.setDataEncoding(“UTF-8”);
不需要重启jmeter
第五种方法,确定csv文件保存的格式编码
使用txt打开,并保存为“UTF-8”格式,重新将csv文件导入jmeter中
但,发现使用txt保存的“UTF-8”格式,使用Notepad++打开,显示文件编码为“UTF-8-BOM”
为了避免是这个原因导致乱码,又使用Notepad++将csv文件切换为“UTF-8”,再保存
第六种方法,在jmeter修改csv文件的读取格式
在jmeter修改csv文件的读取格式为“UTF-8”,不需要重启jmeter
以上方法尝试后,都没有解决我的Response Body中文显示为乱码的问题。
再次思考,是否请求前的参数就是乱码?
如果是请求中的乱码,如下图
解决方法:
使用上面提到的第三种方法Content encoding,能正常
备注:同时配置jmeter上csv的“File encoding”和请求的Content encoding为“UTF-8”,请求接口body的中文显示为乱码,这时,只要将csv的“File encoding”的“UTF-8”修改为“Edit”
在确保请求接口的参数是正常显示中文的情况下,尝试了上面6种方法,Response Body还是乱码?那问题到底出现在哪里?
忽然思路一转,既然请求过去的中文没有问题,那应该返回值是正常的,那应该就是显示的问题导致。
最后尝试将结果树的显示方式“Text”改为“Json”,哦~~~~~~,Response Body居然正常显示中文了。
正如那句诗:众里寻他千百度,那人却在灯火阑珊处
晚安
#成长是具体的#