Jmeter(三十二)Jmeter Question 之 亂碼解讀
眾所周知,編碼的問題影響著眾多開發者,當然見多不怪。
先扒了一個編碼的原因,也就是為什麽要編碼:
- 計算機中存儲信息的最小單元是一個字節即 8 個 bit,所以能表示的字符範圍是 0~255 個
- 人類要表示的符號太多,無法用一個字節來完全表示
- 要解決這個矛盾必須需要一個新的數據結構 char,從 char 到 byte 必須編碼
Jmeter中也是存在編碼(也就是常見的‘亂碼’)問題。
常見的編碼格式有ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16等,而GB2312、GBK、UTF-8、UTF-16格式便是常用的漢字編碼格式。
回到正主,Jmeter中的編碼又是什麽呢?
該段內容截取至${jmeter_home}\bin\jmeter.propeties文件
從截圖中的這段註釋中便可以看到。jmeter默認是以ISO-8859-1編碼格式進行編碼的。
那麽在GUI界面進行操作的過程中,與某些響應報文的編碼格式不一致時,便會出現亂碼情況。如下:
響應亂碼便是如此。
解決方案:1)修改配置文件中的編碼格式(上方截圖所示)
2)直接在請求處的編碼格式中輸入編碼格式(下圖示)
還有一種亂碼便是請求報文亂碼,常出現場景:外部文件參數化。
CSV文件中未定義編碼格式。
加入編碼格式,請求重試
還有一種亂碼情況,通常在錄制的情況會出現。
具體的場景是,錄制完成之後,接口的請求body data中有亂碼信息,例如某些json字符串等。
通過翻閱官方文檔,是有該情況。
body data中文亂碼,是因為jmeter自3.0起,優化了body data後默認的字體(consolas)不支持中文顯示;
解決方案:在jmeter.properties中查找jsyntaxtextarea.font.family,取消註釋,使用hack字體即可(當然也可以換成支持的其他字符集)
本人也使用3.2進行了錄制,部分body data中的json字符串是有這種不支持中文顯示的亂碼情況,不過,本人也進行調試,是不影響使用的,可以進行請求使用。
Jmeter(三十二)Jmeter Question 之 亂碼解讀