软件性能测试详解
軟件性能測試大概包括以下幾個方面:
一、性能測試理論基礎
-
性能測試概念:
指通過自動化測試工具,模擬多種正常,峰值以及異常負載條件來對系統的各項性能指標進行測試。 -
性能測試的目的:
評價系統當前性能,判斷系統是否滿足預期的性能需求。
尋找軟件系統可能存在的性能問題,定位性能瓶頸并解決問題。
判定軟件系統的性能表現,預見系統負載壓力承受力,在應用部署之前,評估系統性能。 -
性能測試包括什么:
負載測試,壓力測試,容量測試。
1、負載測試(Load Testing):負載測試是一種主要為了測試軟件系統是否達到需求文檔設計的目標,譬如軟件在一定時期內,最大支持多少并發用戶數,軟件請求出錯率等,測試的主要是軟件系統的性能。2、強度測試(Stress Testing):強度測試主要是為了測試硬件系統是否達到需求文檔設計的性能目標,譬如在一定時期內,系統的cpu利用率,內存使用率,磁盤I/O吞吐率,網絡吞吐量等,壓力測試和負載測試最大的差別在于測試目的不同。
3、容量測試(Volume Testing):確定系統最大承受量,譬如系統最大用戶數,最大存儲量,最多處理的數據流量等。
二、性能測試術語與關鍵指標
-
術語與關鍵指標:
資源指標:
1、CPU使用率:指用戶進程與系統進程消耗的CPU時間百分比,長時間情況下,一般可接受上限不超過85%。
2、內存利用率:內存利用率=(1-空閑內存/總內存大小)*100%,一般至少有10%可用內存,內存使用率可接受上限為85%。
3、磁盤I/O: 磁盤主要用于存取數據,因此當說到IO操作的時候,就會存在兩種相對應的操作,存數據的時候對應的是寫IO操作,取數據的時候對應的是是讀IO操作,一般使用% Disk Time(磁盤用于讀寫操作所占用的時間百分比)度量磁盤讀寫性能。
4、網絡帶寬:一般使用計數器Bytes Total/sec來度量,Bytes Total/sec表示為發送和接收字節的速率,包括幀字符在內。判斷網絡連接速度是否是瓶頸,可以用該計數器的值和目前網絡的帶寬比較。
系統指標:
1、并發用戶數:某一物理時刻同時向系統提交請求的用戶數。
2、在線用戶數:某段時間內訪問系統的用戶數,這些用戶并不一定同時向系統提交請求。
3、平均響應時間:系統處理事務的響應時間的平均值。事務的響應時間是從客戶端提交訪問請求到客戶端接收到服務器響應所消耗的時間。對于系統快速響應類頁面,一般響應時間為3秒左右。一般分為2、5、8s。
4、吞吐量:每秒鐘系統能夠處理的請求數、任務數。(吞吐量的指標受到響應時間、服務器軟硬件配置、網絡狀態等多方面因素影響。)
5、超時錯誤率:主要指事務由于超時或系統內部其它錯誤導致失敗占總事務的比率。
一個系統吞吐量經常由響應時間、并發數兩個因素決定,每套系統這兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,cpu上下文切換,內存等等其他消耗導致系統性能下降。 -
響應時間–負載對應關系:
響應時間突然增加,意味著系統的一種或多種資源利用達到極限。
-
吞吐量–負載對應關系:
吞吐量逐漸達到飽和,意味著系統的一種或多種資源利用達到極限。
三、性能測試分類
1、預期指標的性能測試
2、獨立業務的性能測試:
(1)在同一時刻進行完全一樣的操作
(2)是在同一時刻使用完全一樣的功能
3、組合業務性能測試
4、疲勞強度性能測試
5、大數據量性能測試
6、網絡性能測試
7、服務器(操作系統,web服務器,數據庫)性能測試
8、一些特殊的測試:配置,內存泄漏等
四、性能測試模型與流程
五、性能測試常用工具
1.JMeter
2. Loadrunner
六、性能監控與分析
詳見https://blog.csdn.net/heyongluoyao8/article/details/51413668
七、系統性能定位與調優
- 性能瓶頸可能出現的地方有:網絡(波動、延遲等/硬件資源(CPU/內存/緩存/IO讀寫)/數據庫慢查詢/線程死鎖/異常等
- 瓶頸問題定位方法
????網絡(波動、延遲等):nmon網絡監控,一般來說只需監控事務接入組件服務器的網絡數據即可,其他內部組件一般都是屬于局域網類型網絡。
????硬件資源(CPU/內存/緩存/IO讀寫):nmon硬件資源監控,需監控所有服務器資源(業務組件服務器/數據庫服務器/MQ服務器等),經驗上看最有可能出現問題的是業務組件服務器.
????數據庫慢查詢:數據庫慢查詢配置,具體查看 http://www.cnblogs.com/echo-something/archive/2012/07/25/2607771.html
????軟件問題:先分析日志,查看大概的問題所處業務邏輯位置,再借助工具jstack(java后臺)或者pstack(其他后臺)記錄各線程運行堆棧信息,查看分析線程等待(WAITING)狀態原因 - 瓶頸優化方法
網絡(波動、延遲等)
運維優化網絡環境
硬件資源(CPU/內存/緩存/IO讀寫)
優化軟件程序,重構復雜邏輯、遞歸,優化日志級別等
增加硬件配置
分布式部署
數據庫慢查詢
優化sql語句
重構業務邏輯
軟件問題
優化程序邏輯
異步模式
八、性能架構,管理
暫無。
參考資料:https://www.cnblogs.com/puresoul/p/5456855.html
https://www.jianshu.com/p/d42dab4af1be
http://www.51testing.com/html/01/n-3959101.html
總結
- 上一篇: mass Framework switc
- 下一篇: discuz插件伪静态如何设置,根据独游