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"),儲存;再次執行,返回的結果即可
相關文章
- TOMCAT 請求資料編碼亂碼 問題Tomcat
- requests請求返回內容 中文亂碼問題
- 大請求、請求超時問題
- 解決 Laravel 接收非簡單請求時,只有收到 OPTIONS 請求的問題Laravel
- java springboot http get請求 URLConnection get 返回值 亂碼JavaSpring BootHTTP
- axios躺坑之路:cookie,簡單請求與非簡單請求。iOSCookie
- URL請求不能解決中文請求的問題
- springboot打jar包請求jsp請求不到問題Spring BootJARJS
- Postman 使用 Get 請求 URL 傳參中文亂碼的問題Postman
- Vue 使用 Axios 傳送請求的請求體問題VueiOS
- WKWebView 網路請求Header 丟失WebViewHeader
- Flutter學習(7)——網路請求框架Dio簡單使用Flutter框架
- vue2.0 axios post請求傳參問題(ajax請求)VueiOS
- 學習之路 / handle請求
- Laravel核心程式碼學習 -- 請求RequestLaravel
- OKHttp原始碼學習同步請求和非同步請求(二)HTTP原始碼非同步
- Python編寫多行Header請求的方法PythonHeader
- Elasticsearch 學習二(請求流程).Elasticsearch
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- 關於在request請求時,處理請求引數的問題
- js ajax請求封裝及解決node請求跨域問題JS封裝跨域
- 使用 Laravel 請求類來驗證表單請求Laravel
- 關於兩次http請求,後一次請求影響前一次請求的問題HTTP
- web 跨域請求安全問題Web跨域
- JMeter——非同步請求效能測試JMeter非同步
- Http 請求 header 大小寫有區別嗎?HTTPHeader
- javaWeb03-請求轉發和請求重定向【包含編碼格式與路徑問題】JavaWeb
- GET請求引數為中文時亂碼分析
- 請求OpenFeign的GET請求時,請求為何失敗?
- 迴圈請求報204問題分析
- options 請求跨域問題處理跨域
- vue-resource get/post請求如何攜帶cookie的問題VueCookie
- http請求時nginx會去掉帶有下劃線(_)的Header鍵值HTTPNginxHeader
- 簡單6步搞定Flutter網路請求Flutter
- 簡單的實現jsonp跨域請求JSON跨域
- python-http請求帶AuthorizationPythonHTTP
- post請求帶來的option
- 傳送請求時,url 出現亂碼錯誤