Jmeter之響應結果亂碼解決

2022-02-24 19:13:08 字數 2043 閱讀 5651

場景:

在測試過程中,我們可能需要檢視結果樹,但是發現裡面的響應資料在「document」以外的其他表現形式下都有亂碼,如下圖就是設定了以text的形式展示,響應資料報含亂碼:

分析:原因是jmeter的結果處理編碼與被測試物件的編碼不一致;

1、jmeter的sampler請求結果的預設編碼方式為:iso-8859-1(不支援中文);

2、被測物件的結果編碼可能是gbk、utf-8;

解決方法:

1、使用後置控制器"beanshell postprocessor"來動態修改結果處理編碼,使之與被測物件保持一致;

優點:靈活,隨時修改;

缺點:要根據不同的物件設定不同的編碼,

適用範圍:測試不同的公司專案,有些公司喜歡gbk,有些事utf-8;

2、修改jmeter的預設編碼;

優點:一次修改,長久使用;

缺點:如果要測試不同的公司專案,需要多次修改,較麻煩;

使用範圍:測試本公司的專案,畢竟同乙個公司的專案基本上都是使用同乙個編碼的;

那麼就很明確了,大家可以根據自己的需要來設定;

下面說明兩個方法的操作步驟

1、使用後置控制器"beanshell postprocessor"

(1)確定返回結果的編碼(可跟開發人員確認,如果是web頁面,可檢視原始檔得知),如;

(2)右鍵httpsampler,新增「beanshell postprocessor」元件;

(3)設定「beanshell postprocessor」;

在「script」中增加「prev.setdataencoding("utf-8");」

(4)驗證是否解決,如下圖,已成功處理;

2、修改jmeter的預設編碼

(1)進入%jmeterhome%/bin,找到jmeter.properties,並開啟;

(2)搜尋「sampleresult」,找到sampler的編碼設定**;

(3)修改編碼為「utf-8」,去掉「#」(注釋符號),儲存設定,並重啟jmeter;

(4)驗證是否解決,如下圖(無beanshell postprocessor),已成功處理;

延伸:1、向伺服器傳送的post請求中存在亂碼(一般是中文)時,

可在請求中設定content-encoding,如utf-8;

2、「beanshell postprocessor」一定要設定在http請求中麼?

如下圖:

**:

JMeter響應結果亂碼問題

當響應資料或響應頁面沒有設定編碼時,jmeter會按照jmeter.properties檔案中,sampleresult.default.encoding設定的格式解析預設iso 8859 1,解析中文肯定出錯 the encoding to be used if none is provided ...

jmeter響應結果亂碼問題

當響應資料或響應頁面沒有設定編碼時,jmeter會按照jmeter.properties檔案中,sampleresult.default.encoding設定的格式解析 預設iso 8859 1,解析中文肯定出錯 the encoding to be used if none is provided...

jmeter響應結果亂碼問題

當響應資料或響應頁面沒有設定編碼時,jmeter會按照jmeter.properties檔案中,sampleresult.default.encoding設定的格式解析 預設iso 8859 1,解析中文肯定出錯 1 the encoding to be used if none is provid...