Jmeter是一個比較通用的接口測試和壓測工具,並且還能夠根據須要作二次開發,後續公司可能有壓測的需求,性能測試做爲一項基本技能,仍是有必要學起來。chrome
1、安裝和啓動apache
1. 下載安裝包,官網最新版5.0:http://jmeter.apache.org/download_jmeter.cgi;文件apache-jmeter-5.0.tgz 或zip都可,下載完成後解壓到目標目錄json
2. 進入安裝目錄 /bin ; 啓動jmeter : open jmeter後端
2、簡單接口測試cookie
1.啓動後,左側欄Test Plan 右鍵菜單:Add —>Threads —> setUp Thread Group : 用於設置線程組,管理下面的請求樣例,也就是咱們的測試用例ide
繼續右鍵Thread Group新建:Add—>Sampler—>Http Request ,用於設置單個case的http請求,包括目標接口和參數工具
繼續新建Http Request:Add—>Listener—> View Results Tree :用於展現測試結果性能
設置完成以下圖測試
2. 配置好後,咱們能夠嘗試進行一次簡單的接口測試,就以博客園首頁的某個接口來測試吧(但願網站小編別搞我-_-||)。網站
從chrome的檢查工具中能夠看到,博客園首頁請求中有個右邊欄新聞的get接口:https://www.cnblogs.com/aggsite/SideRight ,返回結果是一個文章連接的div。
3. 咱們將接口地址在HTTP Request中進行設置,因爲請求方式爲https的,儘可能在Protocl進行設置https(這個接口沒有進行限制,但有些後端接口是隻容許https請求的)
Server Name爲:www.cnblogs.com
Path : /aggsite/SideRight
點擊運行,結束後,在View Result Tree中查看結果
3、帶header信息的接口測試
1.上面的請求比較簡單,實際測試中,後端常常存在登陸校驗的狀況,一般狀況,登陸信息會經過header中的cookie、token、authorization等字段透傳到服務端,咱們能夠經過僞造這些header信息來繞過登陸校驗進行測試。
如博客園我的主頁的當前用戶接口:https://home.cnblogs.com/user/CurrentUserInfo?_=1537345396428
直接請求服務端會返回登陸提示信息:
2.在請求中新增header,右鍵Thread Group , Add —> Config Element —> Http Header Manager, 固然這個header也能夠新建在單個Request下,那樣的話只對設置的Request生效。
在key-value列表中新增 cookie ,value爲當前登陸的信息的cookie值,點擊Run,查看請求結果:
4、請求結果亂碼解決
1. 目先後端比較通用的交互數據格式是json,實際請求中,jmeter對返回值中中文的支持至關差,緣由是當請求沒有設置響應編碼時,jmeter會根據jmeter.properties文件中,sampleresult.default.encoding設置的格式解析,因爲默認格式爲IOS-8858-1, 解析中文確定會出錯
sampleresult.default.encoding=ISO-8859-1
2.解決方法一:直接修改 jmeter.properties的sampleresult.default.encoding爲UTF-8
解決方法二:
在請求組中動態修改:右鍵 Thread Group 或 HttpRequest , Add —> Post Processor —> BeanShell PostProcessor,
在腳本編輯框中輸入:prev.setDataEncoding("UTF-8"),保存;再次運行,返回的結果便可