最近性能壓測執行過程中,經常看到很多測試人員執行性能測試,要尋找拐點,但是效率太低,本文就介紹下,如何高效確定性能測試拐點
所謂性能測試拐點,就是指並發用戶達到一定數量,平均響應時間遞增,TPS不增反降,報錯率遞增,當前並發用戶就是該測試案例的拐點
尋找拐點的意義就是當前並發用戶下,系統的平均響應時間、TPS、報錯率是否滿足性能要求,如果滿足,該並發用戶就是滿足用戶需求下所能承受的最大並發用戶數,在去考慮並發用戶是否滿足系統用戶需求,可以結合系統總用戶數、在線用戶數去判斷,他們的關系大致如下:
在線用戶數=系統總用戶數*20%
並發用戶數=在線用戶數*30%
比如系統總用戶數是10000,則在線用戶數就是2000,並發用戶數就是600
一、腳本開發
1. 首先給大家介紹如何開發高效執行的性能測試腳本,目前多數用戶都是分不同並發用戶單次執行,該方法執行效率低,並且不方便數據比對,如下
2. 首先開發好測試案例,然后把案例復制成多個,每個線程修改線程數、用例名稱即可,如下所示,修改用例名稱和線程數對應,這樣生成的測試結果就會區分不同並發下同一個案例的響應時間,方便比對
3. 如果有多個接口實現了一個用例,則需要把所有接口放置在事務控制器下即可,這樣就能生成一個匯總結果(統計多個請求的響應時間、tps等值)
4. 最后在測試計划記得勾選獨立運行每個線程組選項,勾選該選項的意義就是依次並發執行10、20、30、50線程,直到壓測結束
二、執行性能測試
1. 性能測試都是通過命令執行,不建議使用界面壓測,命令如下:
jmeter -n -t rps.jmx -l summary.jtl -e -o report
2. 命令解析,summary.jtl生成的是聚合報告,report生成的是jmeter自帶的html報告,里面有多種圖形報表
三、執行結果分析
1. 執行完畢,雙擊index.html即可打開測試報告
2. 匯總結果如下,隨着並發用戶增加,平均響應時間在遞增,報錯率也在遞增,TPS也隨着用戶數的增加和增加,到了500用戶為最高點,1000並發用戶反而降低
3. 查看Response Times Over Time圖表可以看到響應時間隨着並發用戶數遞增,平均響應時間一直增加,當從500並發改成1000並發時,響應時間增加幅度最大
4. 查看Transactions Per Second,從圖表可以看出當並發用戶從10遞增到400,一直是遞增趨勢,然后500-1000,開始慢慢降低
5. 查看Response Time Percentiles,由圖可見,1000並發用戶只有2.5%的事物響應時間小於5秒,其它都大於5秒,並且50%大於7秒,對於一個簡單查詢,該響應時間用戶已經不能接受
6. 查看 Hits Per Second,從圖表可以看出當並發用戶從10遞增到400的時間段,每秒請求數一直是遞增趨勢,然后500-1000,請求數開始不增反降
本文測試案例執行的並發場景,拐點就是500並發,具體案例還需要結合測試結果具體分析
如果文章對你有幫助,歡迎關注本人公眾號,公眾號與本平台文章同步,方便大家查閱,本人會持續推出與測試有關的文章,與大家分享測試技術,每一篇原創文章都是用心編寫,杜絕抄襲復制
QQ技術交流群:加群請輸入驗證信息 博客園
微信二維碼關注公眾號:
關注之后,回復資源下載,即可獲取本人共享的各種資源下載地址