伺服器壓力測試工具0——需求與設計
阿新 • • 發佈:2019-02-06
簡介
目前網上有各種伺服器的壓力測試工具,大多針對於支援http協議的web伺服器。現在需要實現一個壓力測試工具,能夠實現對各種連線協議的伺服器進行測試,包括但不限於http,tcp,websocket協議。
功能需求
1.能夠實時獲取伺服器對客戶端請求的最大最小以及平均響應時間,百分之九十響應時間,超時任務數,請求錯誤數,錯誤率和實時的QPS,並同步監控伺服器的效能資訊。
2.可以實現對不同型別連線協議進行測試,包括但不限於HTTP,TCP,WEBSOCKET連線。
3.實現對不同的業務場景進行單一測試以及組合測試。
4.因為可能存在一臺壓力機效能問題,所以需要實現可控制多臺壓力機同時對伺服器進行測試,同時開啟,同時停止。並且控制端能夠獲取當前所有壓力機的執行情況與測試資料。
5.能夠控制伺服器在指定的QPS執行,也能夠測試伺服器的極限QPS。
6.獲取的資料儲存到資料庫。
7.能夠以圖表的形式實時展示資料。
設計
壓力端設計
工具壓力端主要分為兩個模組,控制器RobotCtr,壓力生成器RobotSrv,以及業務模組biz。
控制器通過傳送http請求控制壓力機器人的start,stop和status。壓力機器人則開http埠進行監聽執行相應動作,可以持續向被測伺服器產生大量請求進行壓測,並實現對壓力的控制和對資料的採集上報。最終資料上傳至資料庫。
資料收集展示端設計
在被測的伺服器上部署相應的效能採集工具,實時的收集伺服器的各類效能資訊,並上傳至資料庫。
資料展示則提供一個數據展示的web伺服器,能夠實時的從伺服器中拉取當前的測試資料,以及伺服器效能情況等資料。
最終結果展示
部分效果最終如下圖所示。