在測試過程中遇到了請求json串中文亂碼,所以查看了這篇文章,將字符集修改后,亂碼問題已經處理。
轉載http://blog.csdn.net/qing_java/article/details/69728460
JMeter接口測試中文亂碼問題總結
目錄
-
請求消息中文顯示亂碼
-
產生原因:
這種情況在jmeter3.0的版本中才會產生。這不是亂碼,而是由於3.0中優化body data后,使用默認的字體(Consolas)不支持漢字的顯示。 - 解決辦法:
打開 %JMeter_HOME%\bin\jmeter.properties文件,找到jsyntaxtextarea.font.family這個選項,取消前面的#號,使其使用Hack字體即可,當然,你也可以換成 宋體以及其他支持的字體集。
-
響應消息中文顯示亂碼
-
產生原因:
Jmeter的結果處理編碼與被測試對象的編碼不一致。Jmeter的sampler請求結果的默認編碼方式為:ISO-8859-1(不支持中文),Jmeter的sampler請求結果的默認編碼方式為:ISO-8859-1(不支持中文)。 -
解決辦法一:
使用后置控制器”BeanShell PostProcessor”來動態修改結果處理編碼,使之與被測對象保持一致;
優點:靈活,隨時修改;
缺點:要根據不同的對象設置不同的編碼;
適用范圍:測試不同的公司項目,有些公司喜歡GBK,有些是UTF-8;
配置方法:
1、確定返回結果的編碼(可跟開發人員確認,如果是web頁面,可查看源文件得知);
2、右鍵httpSampler,添加“BeanShell PostProcessor”元件;
3、設置“BeanShell PostProcessor”;在“Script”中增加“prev.setDataEncoding(“UTF-8”);”
4、測試驗證,OK,設置完畢。 -
解決辦法二:
修改Jmeter的默認編碼方式;
優點:一次修改,長久使用;
缺點:如果要測試不同的公司項目,需要多次修改,較麻煩;
適用范圍:測試本公司的項目,畢竟同一個公司的項目基本上都是使用同一個編碼的;
配置方法:
1、打開 %JMeter_HOME%\bin\jmeter.properties文件,搜索“sampleresult”,找到sampler的編碼設置代碼;修改編碼與被測系統同樣的編碼方式,如UTF-8,去掉“#”(注釋符號),保存設置,並重啟Jmeter驗證即可。