解決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修改的(右下角),其他工具一樣可以。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM