產生原因:
Jmeter的結果處理編碼與被測試對象的編碼不一致恕酸。Jmeter的sampler請求結果的默認編碼方式為:ISO-8859-1(不支持中文)鹃愤,Jmeter的sampler請求結果的默認編碼方式為:ISO-8859-1(不支持中文)商乎。
解決方法一:
使用后置控制器 BeanShell PostProcessor
來動態(tài)修改結果處理編碼考润,使之與被測對象保持一致泌枪;
優(yōu)點:靈活桦山,隨時修改耳贬,不會更改其他請求的結果編碼踏堡;
缺點:要根據(jù)不同的對象設置不同的編碼;
適用范圍:測試不同的公司項目咒劲,有些公司喜歡GBK顷蟆,有些是UTF-8;
配置方法:
1腐魂、確定返回結果的編碼(可跟開發(fā)人員確認帐偎,如果是web頁面,可查看源文件得知),下圖是在 JMeter 中【查看結果樹】監(jiān)聽器中查看蛔屹;
2削樊、右鍵 http Sampler,添加 BeanShell PostProcessor
后置處理器兔毒;
3漫贞、設置 BeanShell PostProcessor
;在Script
中增加 prev.setDataEncoding("UTF-8");
(PS:腳本的符號需使用英文符號)
4育叁、測試驗證迅脐,OK,設置完畢豪嗽。
解決辦法二:
修改Jmeter的默認編碼方式谴蔑;
優(yōu)點:一次修改豌骏,長久使用;
缺點:如果要測試不同的公司項目树碱,需要多次修改肯适,較麻煩;
適用范圍:測試本公司的項目成榜,畢竟同一個公司的項目基本上都是使用同一個編碼的框舔;
配置方法:
1、確定返回結果的編碼(可跟開發(fā)人員確認赎婚,如果是web頁面刘绣,可查看源文件得知);
2挣输、打開 %JMeter_HOME%\bin\jmeter.properties
文件纬凤,搜索 default.encoding
,找到 jmeter 的默認編碼設置撩嚼;修改編碼與被測系統(tǒng)同樣的編碼方式停士,如UTF-8
,去掉“#”(注釋符號)完丽,保存設置恋技。
3、重啟Jmeter驗證即可