1. 程式人生 > 其它 >效能測試理論(二)

效能測試理論(二)

效能測試的工作流程:

1.目標是什麼?

2.怎麼做?

3.過程中你需要收集資料

4.一定要有結論

效能測試步驟

效能測試模型也可以理解為效能測試步驟,具體彙總為如下:

(1)測試前期準備工作

1.梳理清楚效能測試的目標(參考之前的歷史資料,效能的目標由測試主導梳理出來,但得和大家一起溝通決定)

2.在目標清楚的基礎上,梳理出測試場景和準備測試資料

3.準備測試的資源(人力和機器資源)

(2)測試工具技術引入

1.LoadRunner 惠普公司研發的工具,主要在工業級的效能測試中具備非常大得優勢,它是收費的。

2.JMeter Apache基金會頂級專案,是Java語言100%開發的,它是開源的,在頭部網際網路公司基本都進行二次開發,應用非常廣泛

3.Locust是Python程式碼級別的效能測試工具,它是基於協程(微小的執行緒)官網:https://locust.io/

(3)效能測試計劃

1、具體測試場景執行的負責人,和執行的開始結束時間 2、前置工作內容 3、具體使用到的測試技術

(4)測試設計與開發

1.編寫測試指令碼來執行驗證具體的測試場景

(5)測試執行與管理,資料收集

1.在指令碼編寫的基礎上執行以及驗證測試場景

2.我們在測試的過程中需要收集資料(效能計數器)

A、伺服器系統資源:CPU和Memory

B、DB的資源:IOPS,連線數

C、服務資源:響應時間(最大,最小,平均,中位數(50%),90%,95%,99%),吞吐量,併發數

3、資料收集的思路:把這些資料寫到InfluxDB(時序資料庫),最後展示在Grafana的平臺上

(6)測試分析

1.結合收集到的資料分析是否和最初制定的效能測試目標吻合,如果達到了目標,輸出效能測試報告

2.如果沒有達到目標,那麼開發繼續調整,優化,測試繼續測試

 

場景:針對一碼通的系統,需要做併發的測試,目標資料是每秒併發15萬,需要測:(面試題)

1、5萬 2、10萬 3、15萬 4、20萬 5、25萬

JVM監控工具:

在控制檯輸入jvisualvm,會彈出以下頁面

驗收負載測試

在QA的環境模擬生產執行的業務壓力和使用場景組合,測試系統的效能是否滿足生產環境的效能訴求。

負載測試

在被測系統上持續不斷的增加壓力,直到效能指標(響應時間等)超過預定指標或者某種資源(CPU&記憶體)使用已達到飽和狀態。核心是找到系統的處理極限,為系統調優提供資料,從而達到了解系統性能的容量。

壓力測試

該方法是指系統在一定飽和狀態下,具體如CPU,記憶體等飽和使用的情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤,比如TimeOut超時,OOM記憶體洩漏,OverStackExpection(堆疊異常)。壓力測試的特點: 檢查系統在處於壓力情況下時應用的效能表現 等價於負載測試,使系統的資源處於一個瓶頸的狀態(建議CPU和記憶體在75%以上) 這種方式一般用於測試系統的穩定性

系統的穩定性:被測系統在系統資源飽和的狀態下,依然能夠很好的處理系統的業務邏輯,舉例西安一碼通,在資源飽和狀態下,還能夠掃碼

環境: 1、測試環境(QA) 2、預釋出環境 3、生產環境(線上)

面試題:測試環境測的沒問題,但是每次釋出到線上環境就會有問題,怎麼解決?

答:增加一個預釋出環境

配置測試

被測環境軟硬體環境引數的調整,達到最優的分配原則。

併發測試

模擬使用者的併發訪問,測試多使用者併發訪問同一個應用時是否存在死鎖或者其他的問題,併發測試的特點是: 發現系統中可能隱藏的併發訪問的問題 關注系統可能存在的併發問題,如記憶體洩露,執行緒鎖,資源爭用情況 使用的測試工具如profiler等

可靠性測試

給系統載入一定的業務壓力,讓應用持續執行一段時間,測試系統在這種條件下是否能穩定執行。

被測物件往往是一個服務,服務一般都會提供介面,那麼我們直接訪問這個介面可以來測試這個服務。

下載Jmeter並搭建環境

Jmeter下載地址:https://jmeter.apache.org/download_jmeter.cgi

下載之後將Jmeter的bin目錄新增到path環境變數

 開啟cmd控制檯,輸入命令jmeter -v,出現以下就是環境搭建好了

面試題:

1.怎麼區分負載測試與壓力測試?

2.怎麼理解系統穩定性測試?

3.效能測試過程中,開發說需要新增伺服器效能測試才能繼續,此時你會?

答:首先效能測試的過程中,測試環境的資源配置與生產環境的資源必須是一致的。這時是不能同意開發的方案。如果一定要增,就叫上相關人員把生成環境和測試環境資源配置成統一的。

4.做效能測試需要準備哪些工作,為什麼?

5.效能測試中測試環境和生產環境的配置必須一樣嗎?為什麼?

6.效能測試你測什麼?關注的點是什麼?

答:程式的響應時間,系統的吞吐量,以及併發使用者數,和tps,qps,以及DB的IOPS,和伺服器的系統資源(cpu和記憶體)

通過一定的工具或者程式碼的方式,來驗證被測試的程式是否滿足效能測試的目標,以及驗證程式是否會出現OOM,系統崩潰,系統無響應等情況