文章目錄
- JMeter概述
- 問題
- 總結
- 參考
JMeter概述
與wrk相比,JMeter是一款更專業的性能測驗工具,提供更多管理選項,提供GUI,筆者在開發完成API作業后會做一些性能測驗,整體感受就是功能比較強大,GUI方便配置引數,適合專業測驗人員使用,
問題
后端性能測驗程序中,我們希望模擬一個完整的請求程序,即:
- 模擬用戶登錄成功
- 模擬用戶頻繁執行某個操作,達到API性能測驗目的,
那么問題來了,步驟2中如何得到步驟1的session/token資訊呢?我們需要配置JMeter以便獲取到相關資訊,下面是通過正則運算式提取JSESSIONID的步驟,
- 確認專案中各個介面的請求/回應資訊


- 登錄介面需要添加
HTTP資訊頭管理器,請求引數全部需要指定,否則回應資訊中可能會不存在Set-Cookie資訊,另外筆者初步理解Set-Cookie可以放在回應體或者回應頭中,但是本專案放在在回應頭中,


- 在登錄介面中添加
正則運算式提取器用于提取JSESSIONID

- 在測驗介面中,添加
HTTP Cookie管理器,獲取上一步中的JSESSIONID

總結
- 讀者可能會有疑問,為什么性能測驗需要給
API提供session資訊?
服務端使用session標記客戶端會話請求,將每一個restful的無狀態請求變成有狀態請求,Tomcat中存在一個全域靜態變數Map<String, Object> sessions,存放session,用戶第一次請求后會將此sessionid資訊放入sessions,后續請求會從sessions中查找此session是否存在,存在就使用;不存在就創建一個新的sessionid加入sessions, - 性能測驗中是否可以不傳遞
session資訊?
參考上文,如果不傳遞session,性能測驗會產生很多sessionid,繼而導致JVM堆空間被塞滿引發OOM,詳細資訊可以參看筆者這篇文章 - 注意:性能測驗需要處理關于
session的問題,實際線上環境不會出現這個問題,因為用戶登陸成功后去在界面操作,都會正常攜帶session資訊的,筆者當前只解決了通過正則獲取JSESSION的資訊,下一步是基于JMeter走通一個完整的性能測驗流程,
參考
- https://www.cnblogs.com/liulinghua90/p/9257548.html [JMeter關聯Cookie資訊]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/401617.html
標籤:其他
上一篇:零基礎學習Linux編程之Ubuntu系統下C++開發工具安裝
下一篇:【軟體質量保證與測驗】練習10
