1. 程式人生 > >Jmeter(三十二)Jmeter Question 之 亂碼解讀

Jmeter(三十二)Jmeter Question 之 亂碼解讀

直接 默認 進行 json 字符 blog 文件中 內容 錄制完成

  眾所周知,編碼的問題影響著眾多開發者,當然見多不怪。

  先扒了一個編碼的原因,也就是為什麽要編碼:

  1. 計算機中存儲信息的最小單元是一個字節即 8 個 bit,所以能表示的字符範圍是 0~255 個
  2. 人類要表示的符號太多,無法用一個字節來完全表示
  3. 要解決這個矛盾必須需要一個新的數據結構 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 之 亂碼解讀