Jmeter做接口测试JSON返回值乱码而且未格式化解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter做接口测试JSON返回值乱码而且未格式化解决相关的知识,希望对你有一定的参考价值。
在使用Jmeter接口测试过程当中,我们需要经常查看JSON的返回值,不是中文显示而且还未格式化,不易读。
这个时候就需要使用到我们的beanshell后置处理器
1.首先下载jackson-annotations、jackson-core、jackson-databind 版本均为2.8.6,下载地址如下:
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.8.6/jackson-annotations-2.8.6.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.8.6/jackson-core-2.8.6.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.8.6/jackson-databind-2.8.6.jar
将下载后的文件统一放入到Jmeter安装目录下libext目录下,我的jmeter目录是D:apache-jmeter-5.3libext
PS:为啥放到这个文件夹下呢,因为启动jmeter的时候会自动加载进来就不需要手动加载了
2.修改jmeter.properties文件,这个文件在D:apache-jmeter-5.3injmeter.properties
将
#sampleresult.default.encoding=ISO-8859-1
修改为
sampleresult.default.encoding=utf-8
或者直接在文件的末尾添加这行
PS:这个步骤不做的话你会发现返回的还是会有????这样的字符
3.在线程组中,新增一个后置处理器的beanshell后置处理程序
内容为
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
try {
String response_data = prev.getResponseDataAsString();
log.info("response_data: " + response_data);
ObjectMapper objectMapper = new ObjectMapper();
Map readValue = objectMapper.readValue(response_data, Map.class);
String writeValueAsString = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(readValue);
log.info("PrettyFromatJson result: " + writeValueAsString);
prev.setResponseData(writeValueAsString);
} catch (JsonProcessingException e) {
log.info("BeanShell PostProcessor failed=======================================", ex);
}
通过如上处理之后JSON就很容易通过肉眼读出来了
以上是关于Jmeter做接口测试JSON返回值乱码而且未格式化解决的主要内容,如果未能解决你的问题,请参考以下文章
使用jmeter做接口测试,怎么验证,核对响应结果中json的内容