以jpress新增文章接口為例
目錄
1、需求分析
2、場景設計
3、分析結果生成報告
1、需求分析
需求人員一般對系統提出性能要求:某接口10秒達到100並發,響應時間不能超過3秒,10分鍾穩定運行100用戶,error%不超過0.01%,cpu占用率不能超過80%
分析:
第一點:啟動時間要求10s啟動100個
第二點:響應時間低於3秒,報錯率低於0.01%
第三點:10分鍾穩定運行100用戶
2、場景設計
第一步:調通單接口
僅一次登錄控制器:一次線程活動中只會運行一次,這樣可以設置多次循環次數實現並發數(線程數*循環次數)的添加
注:這里可以將僅一次登錄控制器換成吞吐量控制器,這樣整個活動下來,不管多少線程,不管循環多少次都只執行一次登錄
第二步:設置第一點的需求場景,10秒內啟動總並發數的通過20%、50%、80%、100%,分別得到當時的響應時間、報錯率、tps、cpu占用率指標
如:20%
配置csv中20條條可添加信息
禁掉除了斷言以外的所有非必須配置元件, 使用無圖形界面運行方式 執行腳本,由於我這里腳本和參數化文件在我當前執行腳本的路徑,所以我沒有帶路徑,如果執行路徑和腳本不在一個路徑,則需要填寫腳本位置,csv則在腳本中的函數助手中進行修改,確保是一個可讀取的路徑
E:\j>jmeter -n -t login.jmx -l m.jtl
執行完,會在指定的路徑生成報告,此報告可用聚合報告打開
3、分析結果生成報告
1、本圖需要關注的點:系統在空閑狀態下執行20並發,處理添加請求響應平均時間為79ms,存在5%的報錯率,tps為12.4/s
2、通常我們是需要拿幾次的執行結果對比tps,查看報錯率情況,分析性能瓶頸等
3、比如說報錯率在某一次中超過了預期,則該值時已經存在性能瓶頸;tps達到某一值時,不升反降,則該值存在性能瓶頸;響應時間的值開始緩慢增加后來劇增,則達到性能瓶頸
4、可以通過nmon或者serveragent等插件觀察服務器的動態cpu、內存、io、磁盤利用率等輔助分析
5、可以通過top命令實時查看服務器性能表現情況
優化版:
第一步:jmeter有一個Stepping Thread Group,可以實現階梯式啟動加壓
入口:添加線程組——jp@gc - Stepping Thread Group
設計腳本:
參數介紹:
This group will start 100 threads:設置線程組啟動的線程總數為100個;
First,wait for N seconds:啟動第一個線程之前,需要等待N秒;
Then start N threads:設置最開始時啟動N個線程;
Next,add 10 threads every 30 seconds,using ramp-up 5 seconds:每隔30秒,在5秒內啟動10個線程;
Then hold load for 60 seconds:啟動的線程總數達到最大值之后,再持續運行60秒;
Finally,stop 5 threads every 1 seconds:每秒停止5個線程;
第二步:
裝好nmon(可參考https://www.cnblogs.com/weizhideweilai/p/11368192.html),最后設置參數進行監控服務器性能指標
鏈接:https://pan.baidu.com/s/1j6_H9W5SdnoFrsN2nuRmUQ
提取碼:njku