一、多個真實用戶對接口的壓力測試
1. 獲取多個真實用戶的token的兩種方法:
1)第一種:讓開發幫忙生成多個token(多個用戶賬戶生成的token),導出為csv格式的文件(以下步驟均以該方法為基礎)
2)第二種:自己設置多個用戶賬戶和密碼,并存儲于txt文件中,文件名稱叫:login.txt(使用詳情見步驟三)
2. 新建線程組,并根據需求設置”線程數“和”時間“
3. 在線程組下創建HTTP Header Manager,并設置信息頭中的參數和值
1)該信息頭放在了線程組下面,所以是針對該線程組下所有的接口;
2)不是所有的請求都需要設置信息頭。若后端需要一些驗證信息,比如“app的版本號”,“token”等,需要HTTP Header Manager 來保證發送HTTP請求的正確,否則是不需要的。
3)接口發送請求時,需要獲取登錄接口返回的token值,用”${token}“引入該變量
4)token變量的值取自步驟1中的csv文件,如何設置,請看步驟4
4. 在線程組下添加CSV數據文件設置
1)從本地添加帶有token信息的csv文件、設置文件編碼為”UTF-8“
2)變量名稱設置為”token“,方便信息頭調用
5. 添加http請求
1)設置協議、服務器名稱、端口號、方法和路徑(用charles等工具抓包即可得到接口信息)
6. 添加查看結果樹和匯總報告,運行后查看結果
二、模擬單個用戶獲取token并應用在其他接口
1. 在登錄接口請求下添加"JSON Extractor",設置變量名、接口響應數據中字段名
2. 把步驟1中的變量名應用于其他需要該變量的接口中即可,比如圖中的asset_main接口的headers中
3. 用Debug Sampler檢查變量的值是否取到,在察看結果樹中查看“登錄”和“Debug Sampler”中的值
三、模擬多個用戶獲取token并應用在其他接口
1. 創建login.txt文件,并在CSV Data Set Config中選擇該文件所在路徑
2. 把登錄接口中的用戶賬戶和密碼參數化,名稱與CSV Data Set Config中保持一致
3. 在其他接口中的應用和步驟二一樣,用戶賬戶和密碼的調用是按照順序從上到下,可以在“察看結果樹”中查看多個登錄接口的請求參數phone_number(對應變量account)和password
四、絕對并發、多場景混合并發
1. 使用Synchronizing Timer(同步定時器)實現絕對并發
1)Number of Simulated Users to Group by(集合點數):集合到對應的用戶量才發送請求,設置的值不能大于線程數
2)Timeout in milliseconds(等待超時時間,毫秒):在指定的毫秒時間內沒有達到集合點數,將停止等待直接發送請求
3)未使用Synchronizing Timer實現的相對并發(10s運行500個進程),在“用表格察看結果”處察看接口請求開始時間。從圖中可以看出,用戶在某個時間段內的隨機一個時間點去執行,屬于相對并發。
4)使用Synchronizing Timer實現的絕對并發(10s運行500個進程),在“用表格察看結果”處查看接口請求開始時間。從圖中可以看出,集合到3個用戶才發送請求,做到了絕對并發。
2. 多場景混合并發測試:
1)在線程組下面(各個接口上面),添加多個吞吐量控制器(Throughput Controller)
2)設置總線程數為20,“get_current_price_01”接口的線程數占比為30%,“get_current_price_02”接口的線程數占比為70%
3)運行后,查看“View Results Tree”和“匯總報告”。從“View Results Tree”可看出兩個接口是混合并發的;從“匯總報告”可看出接口占比的分別為30%和70%
五、測試報告生成
命令:[jmeter.bat路徑] -n -t 財富接口.jmx -l financial.csv -e -o financial
推薦閱讀
【JVM】類加載、連接和初始化過程
2018全套學習視頻資源已經整理好了!免費分享!
【資源分享】Docker核心技術視頻教程
【資源分享】螞蟻課堂2期無加密-Java視頻教程
Java日志體系詳細總結
【資源分享】Spring Cloud微服務實戰視頻課程
2020傳智-黑馬Python全系列課程
詳解BlockingQueue
Springmvc源碼解析總結
老男孩教育-Linux中高級運維-58期
本公眾號會不定期給大家發福利,包括學習資源等,敬請期待吧!
推送內容如果現在工作用不上,可以先轉發朋友圈或收藏,用的時候方便找。
另外歡迎關注公眾號或添加微信好友,互相學習交流。