1. 程式人生 > >伺服器壓力測試工具2——壓力端控制模組設計

伺服器壓力測試工具2——壓力端控制模組設計

簡介

壓力端控制模組(Robotctr)相對簡單,主要負責控制壓力端的壓力生成以及部分測試資料的上傳。

設計思路

Robotctr讀取配置檔案,把相應的配置項通過HTTP傳送到各個Robotsrv,並使用HTTP請求控制Robotsrv機器的啟動和停止測試。請求包括:
1.start請求:開始測試請求,會向配置檔案壓力伺服器列表中的所有Robotsrv傳送start請求。如果某個Robotsrv啟動失敗則會退出測試。
2.stop請求:停止測試請求,向配置檔案壓力伺服器列表中的所有Robotsrv傳送stop請求。通過捕獲訊號來判斷是否傳送stop請求,當用戶需要手動停止測試時,使用ctrl+c則可向所有Robotsrv傳送stop請求。
3.status請求

:獲取測試資料狀態請求。向配置檔案壓力伺服器列表中的所有Robotsrv每隔Interval時間(配置檔案中設定的資料採集間隔時間)傳送status請求。並對各個Robotsrv回包中的資料進行計算彙總並上傳至資料庫。判斷當前測試的成功率是否符合要求,如果低於要求的成功率,則立即退出測試,測試失敗。

配置檔案設計

壓力端的配置檔案使用的是json,主要內容包括

{
  "RobotNum":10, //每臺Robotsrv開啟的機器人數量。
  "RobotScene":"GameCase",//測試場景,使用者自己編寫,後面會詳細介紹。
  "TPS":-1,//TPS控制數值,這個數值用來控制測試時被測伺服器的TPS,-1表示進行極限測試。
  "TestTime":600,//測試時間,單位秒。
  "Interval":2,//資料上傳時間間隔,單位秒。
  "RobotPerSec":100,//每秒啟動機器人數。
  "SectionNum":100,//Tps控制時,任務分塊數,推薦值100。後面會詳細介紹。
  "StatTimeMax":1000,//預估最大的響應時間,單位毫秒。後面會詳細介紹。
  "StatTimePrecision":2,//90%響應時間計算精度,單位毫秒,精度少量影響效能,推薦2毫秒。後面會詳細介紹。
  "SuccessRate":99.9,//成功率,當測試中響應成功率低於該值將會自動退出測試且測試失敗。
  "TestAddr":["ws://192.168.0.1:8888"],//被測伺服器地址列表,為陣列,可設定為多臺。
  "CliLogPath":"../Clilog/%d/testlog_%h.log",//控制端日誌路徑。
  "SrvLogPath":"../Srvlog/%d/testlog_%h.log",//壓力伺服器日誌路徑。
  "DataLogPath":"../Datalog//%d/testlog_%h.log",//機器人測試資料日誌路徑。
  "ReadTimeOut":6,//測試超時時間,單位秒。
  "URLs": ["http://127.0.0.1:8080"],//壓力伺服器地址列表。
  "DBConfPath": "../../config/db.ini"//資料庫配置檔案路徑。
}