Jmeter深度學習第一天——簡單請求、帶header請求、返回值亂碼問題
Jmeter是一個比較通用的介面測試和壓測工具,而且還可以根據需要做二次開發,後續公司可能有壓測的需求,效能測試作為一項基本技能,還是有必要學起來。
一、安裝和啟動
1. 下載安裝包,官網最新版5.0:http://jmeter.apache.org/download_jmeter.cgi;檔案apache-jmeter-5.0.tgz 或zip均可,下載完成後解壓到目標目錄
2. 進入安裝目錄 /bin ; 啟動jmeter : open jmeter
二、簡單介面測試
1.啟動後,左側欄Test Plan 右鍵選單:Add —>Threads —> setUp Thread Group : 用於設定執行緒組,管理下面的請求樣例,也就是我們的測試用例
繼續右鍵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中檢視結果
三、帶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,檢視請求結果:
四、請求結果亂碼解決
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"),儲存;再次執行,返回的結果即可
相關文章
- requests請求返回內容 中文亂碼問題
- TOMCAT 請求資料編碼亂碼 問題Tomcat
- 解決 Laravel 接收非簡單請求時,只有收到 OPTIONS 請求的問題Laravel
- 解決URL請求中的中文亂碼問題
- Solaris上中文請求亂碼
- jboss get請求中文亂碼問題的解決[zt]
- ajax請求且帶返回值的程式碼例項
- axios躺坑之路:cookie,簡單請求與非簡單請求。iOSCookie
- URL請求不能解決中文請求的問題
- jmeter請求https地址JMeterHTTP
- Postman 使用 Get 請求 URL 傳參中文亂碼的問題Postman
- Flutter學習(7)——網路請求框架Dio簡單使用Flutter框架
- java springboot http get請求 URLConnection get 返回值 亂碼JavaSpring BootHTTP
- 學習之路 / handle請求
- Laravel核心程式碼學習 -- 請求RequestLaravel
- iOS 同步請求 非同步請求 GET請求 POST請求iOS非同步
- Vue 使用 Axios 傳送請求的請求體問題VueiOS
- OKHttp原始碼學習同步請求和非同步請求(二)HTTP原始碼非同步
- AFNetWork請求Cache問題
- vue2.0 axios post請求傳參問題(ajax請求)VueiOS
- springboot打jar包請求jsp請求不到問題Spring BootJARJS
- Elasticsearch 學習二(請求流程).Elasticsearch
- SpringMVC學習(三)對映請求引數&請求引數SpringMVC
- WKWebView 網路請求Header 丟失WebViewHeader
- Jmeter做效能測試——HTTP請求JMeterHTTP
- JMeter——非同步請求效能測試JMeter非同步
- 使用 Laravel 請求類來驗證表單請求Laravel
- js ajax請求封裝及解決node請求跨域問題JS封裝跨域
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- 請求框架&移動請求框架
- 關於兩次http請求,後一次請求影響前一次請求的問題HTTP
- web 跨域請求安全問題Web跨域
- ajax跨域請求簡單介紹跨域
- 一個簡單的Ajax請求例子
- node.js [superAgent]請求簡單程式碼例項Node.js
- javaWeb03-請求轉發和請求重定向【包含編碼格式與路徑問題】JavaWeb
- GET請求引數為中文時亂碼分析
- post請求帶來的option