解决jmeter导入csv文件乱码的问题
注意:因为请求体中含有中文,所以为了避免乱码:需要保持编码一样(楼主使用的是UTF-8)
- 首先在写入csv文件设置编码。
- jmeter解析csv文件时,需要设置编码
- http发送请求时,需要设置内容编码
如果是使用java生成的jmx
楼主使用的是utf-8
如果不知道下面代码的意思,请参考:java使用jmter生成jmx文件并运行
/** JMETER_ENCODING 这个是楼主设置的常量,值是UTF-8 */
// 1. 写入csv文件时,指定编码,
private static void writeRow(List<String> row, BufferedWriter csvWriter) throws IOException {
for (String data : row) {
csvWriter.write(new String(data.getBytes(JMETER_ENCODING), JMETER_ENCODING));
}
}
// 2. jemter解析csv文件时,需要设置编码
private static CSVDataSet getCSVDataSet(String bodyPath) {
... 省略部分代码
// 设置编码
csvDataSet.setProperty(new StringProperty("fileEncoding", JMETER_ENCODING));
... 省略部分代码
return csvDataSet;
}
// 3. http发送请求时,需要设置内容编码
/***
* 创建http请求信息
* @param url ip地址
* @param port 端口
* @param api url
* @param request 请求参数(请求体)
* @return
*/
private static HTTPSamplerProxy getHttpSamplerProxy(String url, String port, String api, String request) {
... 省略部分代码
// 设置编码
httpSamplerProxy.setProperty(new StringProperty("HTTPSampler.contentEncoding", JMETER_ENCODING));
... 省略部分代码
return httpSamplerProxy;
}
如果是使用jmeter的可视化界面
注意:如果csv文件是手动创建的,那么保存时需要设置编码
楼主是使用vscode修改的(右下角),其他工具一样可以。