性能測試基本概念

性能測試須要掌握的知識:java

一、性能測試工具mysql

二、操做系統(windows,Linux(CPU,磁盤,網絡,內存))redis

三、編程語言(java簡單代碼(jvm))sql

四、網絡知識數據庫

五、數據庫(mysql、Oracle、redis、mongoDb)編程

六、中間件(Nginx,Tomcat)windows

七、架構(能夠從項目的數據流向開始瞭解)瀏覽器

 

性能測試關注的經常使用指標(重點)tomcat

一、併發服務器

二、併發用戶數

三、事務

四、響應時間

五、TPS

六、吞吐量

七、點擊率

八、資源利用率

 

性能測試基礎:

1、什麼是軟件性能測試

性能測試是指被測系統,在必定的負載下運行,監控系統的各項指標,是否符合需求(指標,指的CPU,內存,事務響應時間,等)若是不符合,就發現了系統的性能瓶頸

衡量指標有倆個方面:響應時間及時處理能力

2、性能測試的目的

 一、評估系統處理能力:驗證系統處理能力是否達到規劃時的水平

二、發現系統的性能瓶頸:某個接口響應時間是否很長,tps很低,硬件方面是否是能夠支持

三、驗證系統穩定性和可靠性:長時間的測試會不會致使內存溢出

四、系統調優:重複執行性能測試,來驗證系統調優是否取得預期結果

 

問題分析:

中間件:優化鏈接數(Nginx,tomcat)

tps低:須要看服務器資源使用狀況,若是資源使用狀況很低,那麼通常都是鏈接數致使的,須要調大你的鏈接數(包括中間件的鏈接數,數據庫的鏈接數),

若是時資源使用很高,須要定位是哪一個進程致使的

 

3、性能測試方法

 

常規性能測試:a點到b點的性能測試,指以系統預期性能指標爲前提,對系統不斷增長壓力,以驗證系統可否達到預期性能。

負載測試:不斷的增長系統的併發用戶數(10-30-50),給系統不斷的增長壓力,直到性能指標(例如響應時間)超過預期值,或者系統已達到飽和狀態

負載測試主要目的:是找到系統處理能力的極限在哪裏

 

壓力測試:負載必定的狀況下(例如100),持續的運行一段時間(例如n*24小時),來驗證系統的穩定性

 

4、性能測試的步驟

 性能測試的時候,先作單接口的性能測試場景,方便定位性能問題,

再作混合場景的性能測試,看有沒有新的性能問題

 

5、性能測試應該關注的指標

用戶關注的:系統的響應時間

響應時間的組成:網絡( N1+N2+N3+N4)+服務器(A1+A2+A3)

 

測試(管理)人員關注的性能點:

性能關注點  

應用服務器/數據庫服務器資源使用是否合理

資源利用率               

系統可否實現可擴展

可擴展性

系統最多支持多少用戶

系統容量

系統最大業務處理能力

tps(每秒服務器可以處理的請求數)

系統性能可能存在的瓶頸在哪裏

數據庫慢查詢等

更換哪些設備可以提升系統性能

cup核數加大,內存加大,固態硬盤等,特殊節日堆服務器等

穩定性,可否支持7*24小時的業務訪問

通常跑8小時,12小時

 

 

 

 

 

 

 

 

 

 

 

開發人員關注的性能:

架構設計是否合理

系統架構 (架構數據流向)

數據庫設計是否合理

數據庫設計(監控是否是有慢查詢)

代碼是否存在性能問題

代碼(多個事務一塊兒跑)

代碼是否存在不合理的內存使用方法

代碼(監控內容是否有內存溢出)
   

 

 

 

 

 

 

 

性能測試工具對比:(100以上均算大併發)

LR jmeter

專業化的工具,須要購買序列號,或者用破解版(國內目前可用lr11)

開源的性能測試工具
學習成本低,只需學習三大部分 作一個請求就須要設計不少插件                           
腳本:lr支持錄製,但不建議錄製(對瀏覽器版本依賴強,可能錄製不成功) 錄製功能須要藉助badboy,不建議錄製
報表:自帶的監控信息很全 須要本身裝插件
大併發時數據比較準確 大併發時數據不是很準確
支持線程和進程 只支持線程,不支持進程
數據庫處理比較麻煩 sql處理很方便

 

 

 

 

 

 

 

 

 術語解釋:

併發,分爲狹義廣義倆種併發:

狹義併發:全部用戶在同一時間請求同一接口

廣義併發:多個用戶在同一時間請求不一樣的接口

在性能測試中,通常時先進行狹義併發,再進行廣義併發

性能測試的時候,先作單接口的性能測試場景,方便定位性能問題,再作混合場景的性能測試,看有沒有新的性能問題

 

併發用戶數:

系統用戶數:註冊過系統的全部用戶,包括天天的活躍用戶數以及殭屍用戶數

在線用戶數:登陸系統的用戶,但不必定會對服務器產生壓力,例如:有N個用戶狀態爲在線狀態,可是並不必定都會有請求,對服務器形成壓力

併發用戶數:對服務器產生壓力的用戶,例如:可能在線的N個用戶中,只有20%的用戶對服務器產生了壓力,也就是說這個接口只有20%的用戶是併發用戶

相關文章
相關標籤/搜索