解决jmeter导入csv文件乱码的问题

注意:因为请求体中含有中文,所以为了避免乱码:需要保持编码一样(楼主使用的是UTF-8)

  1. 首先在写入csv文件设置编码。
  2. jmeter解析csv文件时,需要设置编码
  3. 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修改的(右下角),其他工具一样可以。

posted @ 2020-10-11 23:12  刘翊扬  阅读(761)  评论(0编辑  收藏  举报