一、壓力測試
壓力測試考察當前軟硬件環境下係統所能承受的最大負荷並幫助找出係統瓶頸所在。壓測都是為了係統在線上的處理能力和穩定性維持在一個標準範圍內,做到心中有數。
使用壓力測試,我們有希望找到很多種用其他測試方法更難發現的錯誤。有兩種錯誤類型是:內存泄漏,並發與同步。
有效的壓力測試係統將應用以下這些關鍵條件:重複,並發,量級,隨機變化。
二、性能指標
1,響應時間(Response Time: RT)
響應時間指用戶從客戶端發起一個請求開始,到客戶端接收到從服務器端返回的響應結束,整個過程所耗費的時間。
最大響應時間(Max Response Time) 指用戶發出請求或者指令到係統做出反應(響應)的最大時間。
最少響應時間(Mininum ResponseTime) 指用戶發出請求或者指令到係統做出反應(響應)的最少時間。
90%響應時間(90% Response Time) 是指所有用戶的響應時間進行排序,第 90%的響應時間。
2,吞吐量
吞吐量即每秒鍾係統能夠處理的請求數、任務數。
HPS(Hits Per Second) :每秒點擊次數,單位是次/秒。
TPS(Transaction per Second):係統每秒處理交易數,單位是筆/秒。
QPS(Query per Second):係統每秒處理查詢次數,單位是次/秒。
對於互聯網業務中,如果某些業務有且僅有一個請求連接,那麽 TPS=QPS=HPS,一般情況下用 TPS 來衡量整個業務流程,用 QPS 來衡量接口查詢次數,用 HPS 來表示對服務器單擊請求。無論 TPS、QPS、HPS,此指標是衡量係統處理能力非常重要的指標,越大越好,根據經驗,一般情況下:
金融行業:1000TPS~50000TPS,不包括互聯網化的活動
保險行業:100TPS~100000TPS,不包括互聯網化的活動
製造行業:10TPS~5000TPS
互聯網電子商務:10000TPS~1000000TPS
互聯網中型網站:1000TPS~50000TPS
互聯網小型網站:500TPS~10000TPS
3,錯誤率
錯誤率指一批請求中結果出錯的請求所占比例。
三、JMeter
Apache JMeter 是 Apache 組織基於 Java 開發的壓力測試工具,用於對軟件做壓力測試。JMeter 最初被設計用於 Web 應用測試,但後來擴展到了其他測試領域,可用於測試靜態和動態資源,如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫和 FTP 服務器等等。JMeter 可對服務器、網絡或對象模擬巨大的負載,在不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter 能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證程序是否返回了期望結果。為了最大限度的靈活性,JMeter 允許使用正則表達式創建斷言。