注意:因為請求體中含有中文,所以為了避免亂碼:需要保持編碼一樣(樓主使用的是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修改的(右下角),其他工具一樣可以。