🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快
一、什么是性能測試
先看下百度百科對它的定義
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試
我們可以認為性能測試是:通過在測試環境下對系統或構件的性能進行探測,用以驗證在生產環境下系統性能是否達到預估的性能需求,發現系統可能存在的性能瓶頸,進而改善優化并系統的性能,提高系統的可擴展性、穩定性。
學習性能測試,或者對測試結果進行分析,都需要熟悉測試指標。接下來從性能測試分析度量的角度,介紹性能測試不同維度的測試指標。
二、系統性能指標
2.1 響應時間
響應時間(Response Time),簡稱RT,是指用戶從客戶端發起一個請求開始,到客戶端接收到從服務器端返回的結果,整個過程所耗費的時間。不包括前端頁面的處理和渲染時間。直觀上看,這個指標與人對軟件性能的主觀感受是非常一致的,因為它完整地記錄了整個計算機系統處理請求的時間。響應時間的絕對值并不能直接反映軟件的性能的高低,軟件性能的高低實際上取決于用戶對該響應時間的接受程度。
2.2 系統處理能力
指系統在利用系統硬件平臺和軟件平臺進行信息處理的能力,系統處理能力通過系統每秒鐘能夠處理的交易數量來評價,交易有兩種理解:
(1)從業務人員角度進行的一筆業務過程;
(2)從系統角度的一次交易申請和響應過程。
前者稱為業務交易過程,后者稱為事務,兩種交易指標都可以評價應用系統的處理能力。一般情況下,系統處理能力用以下幾個指標來度量:
- HPS(Hits Per Second):每秒點擊次數,單位是次/秒
- TPS(Transaction per Second):系統每秒處理交易數,單位是筆/秒
- QPS(Query per Second):系統每秒處理查詢次數,單位是次/秒
對于互聯網業務中,如果某些業務有且僅有一個請求連接,那么TPS=QPS=HPS,一般情況下用TPS來衡量整個業務流程,用QPS來衡量接口查詢次數,用HPS來表示對服務器點擊請求。
2.3 吞吐量
指系統在單位時間內處理請求的數量。對于單用戶的系統,響應時間可以很好地度量系統的性能;而對于并發系統,通常需要用吞吐量作為性能指標。一般而言,吞吐量是一個比較通用的指標,兩個具有不同用戶數和用戶使用模式的系統,如果其最大吞吐量基本一致,則可以判斷兩個系統的處理能力基本一致。
2.4 并發用戶數
指在同一時刻內,登錄系統并進行業務操作的用戶數量。對于長連接系統來說最大并發用戶數即是系統的并發接入能力,而對于短連接系統而言最大并發用戶數并不等于系統的并發接入能力短連接系統的并發用戶數與系統架構、系統處理能力等各種情況相關。
與吞吐量相比,并發用戶數是一個更直觀但也更籠統的性能指標。實際上,并發用戶數是一個非常不準確的指標,因為用戶不同的使用模式會導致不同用戶在單位時間發出不同數量的請求。
2.5 錯誤率
錯誤率(Error Rate),是指在一定時間內處理請求時發生的錯誤或失敗的次數與總請求數量之比。錯誤率通常以百分比形式表示,例如:99%的成功率或1%的失敗率等。這個指標越低代表系統性能越好。
三、資源性能指標
3.1 CPU
CPU又稱為中央處理器,是一塊超大規模的集成電路,是一臺計算機的運算核心(Core)和控制核心(Control Unit),功能主要是解釋計算機指令以及處理計算機軟件中的數據。
CPU指標主要指的CPU利用率,包括:用戶態(user)、系統態(sys)、等待態(wait)、空閑態(idle)。性能測試CPU的評估建議值:
(1)CPU利用率要低于業界警戒值范圍之內,即小于或者等于75%
(2)CPU sys%小于或者等于30%
(3)CPU wait%小于或者等于5%
3.2 內存
內存是與CPU進行溝通的橋梁,計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。
現在的操作系統為了最大利用內存,在內存中存放了緩存,因此內存利用率100%并不代表內存有瓶頸。衡量系統內存是否有瓶頸主要靠SWAP(與虛擬內存交換)交換空間利用率,一般情況下,SWAP交換空間利用率要低于70%,太多的交換將會引起系統性能低下。
3.3 磁盤吞吐量
磁盤吞吐量簡稱為Disk Throughput,是指在無磁盤故障的情況下單位時間內通過磁盤的數據量。分析指標主要有每秒讀寫多少兆、磁盤繁忙率、磁盤隊列數、平均服務時間、平均等待時間、空間利用率等等。其中磁盤繁忙率是直接反映磁盤是否有瓶頸的的重要依據,一般情況下,磁盤繁忙率要低于70%。
3.4 網絡吞吐量
網絡吞吐量簡稱為Network Throughput,是指在無網絡故障的情況下單位時間內通過的網絡的數據數量,單位為Byte/s。
網絡吞吐量指標用于衡量系統對于網絡設備或鏈路傳輸能力的需求。當網絡吞吐量指標接近網絡設備或鏈路最大傳輸能力時,則需要考慮升級網絡設備。網絡吞吐量指標主要有每秒有多少兆流量進出,一般情況下不能超過設備或鏈路最大傳輸能力的70%。
四、中間件指標
常用的中間件例如Tomcat、Weblogic等指標主要包括JVM、ThreadPool和JDBC,具體如下:
各項指標參考標準:
(1)當前正在運行的線程數不能超過設定的最大值
系統性能較好的情況下,線程數最小值設置50和最大值設置200比較合適。
(2)當前運行的JDBC連接數不能超過設定的最大值
系統性能較好的情況下,JDBC最小值設置50和最大值設置200比較合適。
(3)GC頻率不能頻繁,特別是FULL GC更不能頻繁
系統性能較好的情況下,JVM最小堆大小和最大堆大小分別設置1024M比較合適。
五、數據庫指標
常用的數據庫指標主要包括SQL、吞吐量、緩存命中率、連接數等等,具體如下:
參考標準:
(1)SQL耗時越小越好,一般情況下微秒級別;
(2)命中率越高越好,一般情況下不能低于95%;
(3)鎖等待次數越低越好,等待時間越短越好。
六、穩定性指標
這里的穩定性是指最短穩定時間,即系統按照最大容量的80%或標準壓力(系統的預期日常壓力)情況下運行,能夠穩定運行的最短時間。
一般來說,對于正常工作日(8小時)運行的系統,至少應該能保證系統穩定運行8小時以上;對于7*24運行的系統,至少應該能夠保證系統穩定運行24小時以上。如果系統不能穩定的運行,上線后,隨著業務量的增長和長時間運行,將會出現性能下降甚至崩潰的風險。
參考標準:
(1)TPS曲線穩定,沒有大幅度的波動;
(2)各項資源指標沒有泄露或異常情況。
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。