>[success] ## 一:性能測試
性能測試方法是通過模擬生產運行的業務壓力量和使用場景組合,測試系統的性能是否滿足生產性能要求。通俗地說,這種方法就是要在特定的運行條件下驗證系統的處理能力。
**特點:**
* 這種測試方法的主要目的是驗證系統是否有系統宣稱具有的能力。
* 這種測試方法要事先了解被測試系統經典場景,并具有確定的性能目標。
* 這種測試方法要求在已經確定的環境下運行。
也就是說,這種方法是對系統性能已經有了解的前提,并對需求有明確的目標,并在已經確定的環境下進行的
>[success] ## 二:負載測試
* * *
通過在被測系統上不斷加壓,直到性能指標達到極限,例如“響應時間”超過預定指標或都某種資源已經達到飽和狀態。
**特點:**
* 這種測試方法的主要目的是找到系統處理能力的極限。
* 這種測試方法需要在給定的測試環境下進行,通常也需要考慮被測試系統的業務壓力量和典型場景、使得測試結果具有業務上的意義。
* 這種測試方法一般用來了解系統的性能容量,或是配合性能調優來使用。
也就是說,這種方法是對一個系統持續不段的加壓,看你在什么時候已經超出“預期要求”或系統崩潰。
>[success] ## 三:壓力測試(強度測試)
* * *
壓力測試方法測試系統在一定飽和狀態下,例如CPU、內存在飽和使用情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤。
**特點:**
* 這種測試方法的主要目的是檢查系統處于壓力性能下時,應用的表現。
* 這種測試方法一般通過模擬負載等方法,使得系統的資源使用達到較高的水平。
* 這種測試方法一般用于測試系統的穩定性。
也就是說,這種測試是讓系統處在很大強度的壓力之下,看系統是否穩定,哪里會出問題。
>[success] ## 四:并發測試
* * *
并發測試通過模擬用戶并發訪問,測試多用戶并發訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或其者他性能問題。
**特點:**
* 這種測試方法的主要目的是發現系統中可能隱藏并發訪問時的問題。
* 這種測試方法主要關注系統可能存在的并發問題,例如系統中的內存泄漏、線程鎖和資源爭用方面的問題。
* 這種測試方法可以在開發的各個階段使用需要相關的測試工具的配合和支持。
也就是說,這種測試關注點是多個用戶同時(并發)對一個模塊或操作進行加壓
<br>
<br>
>[info] **PS:下面是性能測試的主要概念和計算公式,記錄下:**
**一.系統吞度量要素:**
一個系統的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關聯。
單個reqeust?對CPU消耗越高,外部系統接口、IO影響速度越慢,系統吞吐能力越低,反之越高。
系統吞吐量幾個重要參數:QPS(TPS)、并發數、響應時間
**QPS(TPS)** 每秒鐘request/事務?數量
**并發數:**?系統同時處理的request/事務數
**響應時間:** 一般取平均響應時間,很多人經常會把并發數和TPS理解混淆),理解了上面三個要素的意義之后,就能推算出它們之間的關系:
QPS(TPS)=?并發數/平均響應時間
一個系統吞吐量通常由QPS(TPS)、并發數兩個因素決定,每套系統這兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換、內存等等其它消耗導致系統性能下降。
決定系統響應時間要素
我們做項目要排計劃,可以多人同時并發做多項任務,也可以一個人或者多個人串行工作,始終會有一條關鍵路徑,這條路徑就是項目的工期。
系統一次調用的響應時間跟項目計劃一樣,也有一條關鍵路徑,這個關鍵路徑是就是系統影響時間;
關鍵路徑是有CPU運算、IO、外部系統響應等等組成。
**二.系統吞吐量評估:**
我們在做系統設計的時候就需要考慮CPU運算、IO、外部系統響應因素造成的影響以及對系統性能的初步預估。
而通常境況下,我們面對需求,我們評估出來的出來QPS、并發數之外,還有另外一個維度:日PV。
通過觀察系統的訪問日志發現,在用戶量很大的情況下,各個時間周期內的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。
通常的技術方法:
1.?找出系統的最高TPS和日PV,這兩個要素有相對比較穩定的關系(除了放假、季節性因素影響之外)
2.?通過壓力測試或者經驗預估,得出最高TPS,然后跟進1的關系,計算出系統最高的日吞吐量。B2B中文和淘寶面對的客戶群不一樣,這兩個客戶群的網絡行為不應用,他們之間的TPS和PV關系比例也不一樣。
**三:吞吐量**
指在一次性能測試過程中網絡上傳輸的數據量的總和。
**四:吞吐率**
單位時間內網絡上傳輸的數據量,也可以指單位時間內處理客戶請求數量。它是衡量網絡性能的重要指標,通常情況下,吞吐率用“字節數/秒”來衡量,當然,你可以用“請求數/秒”和“頁面數/秒”來衡量。其實,不管是一個請求還是一個頁面,它的本質都是在網絡上傳輸的數據,那么來表示數據的單位就是字節數
# 以上并非個人總結,也參考了其他官網介紹